Properties::defineProperty

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-06-21 14:27:05 -07:00
parent f3b785361d
commit f8e287caf4
2 changed files with 36 additions and 54 deletions

View File

@ -98,33 +98,24 @@ public:
// [] (const Instance *, Sta *) -> PropertyValue { // [] (const Instance *, Sta *) -> PropertyValue {
// return PropertyValue("bar"); // return PropertyValue("bar");
// }); // });
void defineProperty(std::string property, void defineProperty(std::string &property,
std::function<PropertyValue (const Library *lib, PropertyRegistry<const Library *>::PropertyHandler handler);
Sta *sta)> handler); void defineProperty(std::string &property,
void defineProperty(std::string property, PropertyRegistry<const LibertyLibrary *>::PropertyHandler handler);
std::function<PropertyValue (const LibertyLibrary *lib, void defineProperty(std::string &property,
Sta *sta)> handler); PropertyRegistry<const Cell *>::PropertyHandler handler);
void defineProperty(std::string property, void defineProperty(std::string &property,
std::function<PropertyValue (const Cell *cell, PropertyRegistry<const LibertyCell *>::PropertyHandler handler);
Sta *sta)> handler); void defineProperty(std::string &property,
void defineProperty(std::string property, PropertyRegistry<const Port *>::PropertyHandler handler);
std::function<PropertyValue (const LibertyCell *cell, void defineProperty(std::string &property,
Sta *sta)> handler); PropertyRegistry<const LibertyPort *>::PropertyHandler handler);
void defineProperty(std::string property, void defineProperty(std::string &property,
std::function<PropertyValue (const Port *Port, PropertyRegistry<const Instance *>::PropertyHandler handler);
Sta *sta)> handler); void defineProperty(std::string &property,
void defineProperty(std::string property, PropertyRegistry<const Pin *>::PropertyHandler handler);
std::function<PropertyValue (const LibertyPort *port, void defineProperty(std::string &property,
Sta *sta)> handler); PropertyRegistry<const Net *>::PropertyHandler handler);
void defineProperty(std::string property,
std::function<PropertyValue (const Instance *inst,
Sta *sta)> handler);
void defineProperty(std::string property,
std::function<PropertyValue (const Pin *pin,
Sta *sta)> handler);
void defineProperty(std::string property,
std::function<PropertyValue (const Net *net,
Sta *sta)> handler);
protected: protected:
PropertyValue portSlew(const Port *port, PropertyValue portSlew(const Port *port,

View File

@ -1308,73 +1308,64 @@ Properties::capacitancePropertyValue(float cap)
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Library *lib, PropertyRegistry<const Library *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_library_.defineProperty(property, handler); registry_library_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const LibertyLibrary *lib, PropertyRegistry<const LibertyLibrary *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_liberty_library_.defineProperty(property, handler); registry_liberty_library_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Cell *cell, PropertyRegistry<const Cell *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_cell_.defineProperty(property, handler); registry_cell_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const LibertyCell *cell, PropertyRegistry<const LibertyCell *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_liberty_cell_.defineProperty(property, handler); registry_liberty_cell_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Port *Port, PropertyRegistry<const Port *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_port_.defineProperty(property, handler); registry_port_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const LibertyPort *port, PropertyRegistry<const LibertyPort *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_liberty_port_.defineProperty(property, handler); registry_liberty_port_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Instance *inst, PropertyRegistry<const Instance *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_instance_.defineProperty(property, handler); registry_instance_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Pin *pin, PropertyRegistry<const Pin *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_pin_.defineProperty(property, handler); registry_pin_.defineProperty(property, handler);
} }
void void
Properties::defineProperty(std::string property, Properties::defineProperty(std::string &property,
std::function<PropertyValue (const Net *net, PropertyRegistry<const Net *>::PropertyHandler handler)
Sta *sta)> handler)
{ {
registry_net_.defineProperty(property, handler); registry_net_.defineProperty(property, handler);
} }