22 #include "hurricane/Name.h" 23 #include "hurricane/Property.h" 24 #include "hurricane/Slot.h" 39 using Hurricane::_TName;
41 using Hurricane::Record;
49 extern const char* MissingStateProperty;
68 void saveToFile (
const string& path,
Library* library );
70 string _getPrint ()
const;
71 inline string _getTypeName ()
const;
72 string _getString ()
const;
73 Record* _getRecord ()
const;
80 enum Flags { TerminalNetlist = 1 << 0
89 , VstUseConcat = 1 << 9
96 inline bool isTerminalNetlist ()
const;
97 inline bool isFeed ()
const;
98 inline bool isPad ()
const;
99 inline bool isGds ()
const;
103 inline bool isInMemory ()
const;
105 inline unsigned int getFlags (
unsigned int mask=(
unsigned int)-1 )
const;
106 inline bool setFlags (
unsigned int mask,
bool value );
107 inline bool setTerminalNetlist (
bool value );
108 inline bool setFeed (
bool value );
109 inline bool setPad (
bool value );
110 inline bool setGds (
bool value );
114 inline bool setInMemory (
bool value );
118 inline unsigned int getDepth ()
const;
123 inline void setDepth (
unsigned int depth );
125 void toJson ( JsonWriter* w )
const;
126 inline string _getTypeName ()
const;
127 string _getString ()
const;
128 Record* _getRecord ()
const;
141 static void initialize ();
142 JsonState (
unsigned long flags );
143 virtual string getTypeName ()
const;
144 virtual JsonState* clone (
unsigned long )
const;
151 map<Name,State*> _states;
155 static bool readLine (
const string& s,
string& name, State* state );
163 class CatalogProperty :
public PrivateProperty {
168 static CatalogProperty* create ( Catalog::State* state );
169 static Name getPropertyName ();
170 virtual Name getName ()
const;
171 inline Catalog::State* getState ()
const;
172 inline void setState ( Catalog::State* state );
173 virtual void onReleasedBy ( DBo* owner );
174 virtual bool hasJson ()
const;
175 virtual void toJson ( JsonWriter* w,
const DBo* )
const;
176 virtual string _getTypeName ()
const;
177 virtual string _getString ()
const;
178 virtual Record* _getRecord ()
const;
182 Catalog::State* _state;
186 inline CatalogProperty ( Catalog::State* state );
193 class JsonCatalogProperty :
public JsonObject {
195 static void initialize ();
196 JsonCatalogProperty (
unsigned long );
197 virtual string getTypeName ()
const;
198 virtual JsonCatalogProperty* clone (
unsigned long )
const;
199 virtual void toData ( JsonStack& );
207 inline bool Catalog::State::isTerminalNetlist ()
const {
return (_flags&TerminalNetlist)?1:0; }
214 inline bool Catalog::State::isInMemory ()
const {
return (_flags&InMemory )?1:0; }
217 if (value) { _flags |= mask; }
218 else { _flags &= ~mask; }
219 return ((_flags&mask) ?
true :
false);
221 inline bool Catalog::State::setTerminalNetlist (
bool value ) {
return setFlags(TerminalNetlist,value); }
228 inline bool Catalog::State::setInMemory (
bool value ) {
return setFlags(InMemory ,value); }
230 inline void Catalog::State::setDepth (
unsigned int depth ) { _depth = depth; }
234 inline string Catalog::State::_getTypeName ()
const {
return _TName(
"Catalog::State"); }
237 inline map<Name,Catalog::State*>*
239 inline string Catalog::_getTypeName ()
const {
return _TName(
"Catalog"); }
241 inline CatalogProperty::CatalogProperty ( Catalog::State* state ) : PrivateProperty(), _state(state) {}
242 inline Catalog::State* CatalogProperty::getState ()
const {
return _state; }
243 inline void CatalogProperty::setState ( Catalog::State* state ) { _state = state; }
254 static inline bool isTerminalNetlist (
const Cell* );
256 static inline bool isPad (
const Cell* );
257 static inline bool isGds (
const Cell* );
262 static inline unsigned int getFlags (
const Cell*,
unsigned int mask=(
unsigned int)-1 );
263 static inline bool setFlags (
const Cell*,
unsigned int mask,
bool value );
264 static inline bool setTerminalNetlist (
const Cell*,
bool value );
265 static inline bool setFeed (
const Cell*,
bool value );
266 static inline bool setPad (
const Cell*,
bool value );
267 static inline bool setGds (
const Cell*,
bool value );
276 static inline void setDepth (
const Cell*,
unsigned int depth );
278 static const Cell* _owner;
283 inline bool CatalogExtension::isTerminalNetlist (
const Cell* cell )
286 return (state == NULL) ? false : state->isTerminalNetlist();
293 return (state == NULL) ? false : state->
isFeed();
300 return (state == NULL) ? false : state->
isGds();
307 return (state == NULL) ? false : state->
isPad();
314 return (state == NULL) ? false : state->
isDelete();
321 return (state == NULL) ? false : state->
isPhysical();
328 return (state == NULL) ? false : state->
isLogical();
335 return (state == NULL) ? 0 : state->
getFlags();
342 return (state == NULL) ? false : state->
setFlags(mask,value);
346 inline bool CatalogExtension::setTerminalNetlist (
const Cell* cell,
bool value )
349 return (state == NULL) ? false : state->setTerminalNetlist(value);
356 return (state == NULL) ? false : state->
setFeed(value);
363 return (state == NULL) ? false : state->
setPad(value);
370 return (state == NULL) ? false : state->
setGds(value);
377 return (state == NULL) ? false : state->
setDelete(value);
384 return (state == NULL) ? false : state->
setPhysical(value);
391 return (state == NULL) ? false : state->
setLogical(value);
398 return (state == NULL) ? NULL : state->
getLibrary();
405 return (state == NULL) ? 0 : state->
getDepth();
412 return (state == NULL) ? NULL : state->
setLibrary(library);
416 inline void CatalogExtension::setDepth (
const Cell* cell,
unsigned int depth )
419 if ( state == NULL ) state->setDepth(depth);
433 inline std::string getPrint (
const CRL::Catalog &CATAL ) {
return CATAL._getPrint(); }
439 #endif // CRL_CATALOG_H unsigned int getFlags(unsigned int mask=(unsigned int) -1) const
Definition: Catalog.h:215
static bool setPad(const Cell *, bool value)
Definition: Catalog.h:360
@@ -497,24 +54,22 @@
bool setPad(bool value)
Definition: Catalog.h:223
-
Cell * getCell() const
Definition: Catalog.h:231
static bool isGds(const Cell *)
Definition: Catalog.h:297
bool setGds(bool value)
Definition: Catalog.h:224
Cell * setCell(Cell *cell)
Catalog()
Definition: Catalog.h:236
static bool isDelete(const Cell *)
Definition: Catalog.h:311
-
bool isFeed() const
Definition: Catalog.h:208
static bool isLogical(const Cell *)
Definition: Catalog.h:325
static bool setFeed(const Cell *, bool value)
Definition: Catalog.h:353
+
bool isLogical() const
Definition: Catalog.h:213
void merge(const State &other)
-
bool isPad() const
Definition: Catalog.h:209
-
unsigned int getDepth() const
Definition: Catalog.h:233
-
bool isDelete() const
Definition: Catalog.h:211
-
bool isLogical() const
Definition: Catalog.h:213
+
bool isPhysical() const
Definition: Catalog.h:212
+
bool isDelete() const
Definition: Catalog.h:211
+
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int) -1)
Definition: Catalog.h:332
Library * setLibrary(Library *library)
Definition: Catalog.h:229
@@ -525,42 +80,45 @@
void mergeState(const Name &name, const State &other)
bool setFeed(bool value)
Definition: Catalog.h:222
+
Library * getLibrary() const
Definition: Catalog.h:232
+
Cell * getCell() const
Definition: Catalog.h:231
bool setFlags(unsigned int mask, bool value)
Definition: Catalog.h:216
map< Name, State * > * getStates()
Definition: Catalog.h:238
static bool isFeed(const Cell *)
Definition: Catalog.h:290
-
bool isGds() const
Definition: Catalog.h:210
static Library * getLibrary(const Cell *)
Definition: Catalog.h:395
-
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int)-1)
Definition: Catalog.h:332
State * getState(const Name &name, bool add=false)
State()
Definition: Catalog.h:206
-
Library * getLibrary() const
Definition: Catalog.h:232
static bool isPad(const Cell *)
Definition: Catalog.h:304
bool loadFromFile(const string &path, Library *library)
+
bool isFeed() const
Definition: Catalog.h:208
bool setDelete(bool value)
Definition: Catalog.h:225
static Library * setLibrary(const Cell *, Library *library)
Definition: Catalog.h:409
static bool setPhysical(const Cell *, bool value)
Definition: Catalog.h:381
+
-
unsigned int getFlags(unsigned int mask=(unsigned int)-1) const
Definition: Catalog.h:215
+
bool isPad() const
Definition: Catalog.h:209
A Registry to store Alliance Cell metadatas.
Definition: Catalog.h:56
-
bool isPhysical() const
Definition: Catalog.h:212
static bool setDelete(const Cell *, bool value)
Definition: Catalog.h:374
Wrapper to access a Hurricane::Cell Catalog::State.
Definition: Catalog.h:250
bool setPhysical(bool value)
Definition: Catalog.h:226
+
bool isGds() const
Definition: Catalog.h:210
static bool isPhysical(const Cell *)
Definition: Catalog.h:318
static unsigned int getDepth(const Cell *)
Definition: Catalog.h:402
Flags
Definition: Catalog.h:80
+
The namespace of Coriolis Core.
Definition: Environment.h:26
+
unsigned int getDepth() const
Definition: Catalog.h:233
static bool setFlags(const Cell *, unsigned int mask, bool value)
Definition: Catalog.h:339