20 #ifndef HURRICANE_LIBRARY
21 #define HURRICANE_LIBRARY
23 #include "hurricane/DBo.h"
24 #include "hurricane/Libraries.h"
25 #include "hurricane/Cell.h"
26 #include "hurricane/IntrusiveMap.h"
46 public:
class LibraryMap :
public IntrusiveMap<Name, Library> {
49 public:
typedef IntrusiveMap<Name, Library>
Inherit;
53 public:
virtual Name _getKey(
Library* library)
const;
54 public:
virtual unsigned _getHashValue(
Name name)
const;
56 public:
virtual void _setNextElement(
Library* library,
Library* nextLibrary)
const;
60 public:
class CellMap :
public IntrusiveMap<Name, Cell> {
63 public:
typedef IntrusiveMap<Name, Cell>
Inherit;
67 public:
virtual Name _getKey(
Cell* cell)
const;
68 public:
virtual unsigned _getHashValue(
Name name)
const;
69 public:
virtual Cell* _getNextElement(
Cell* cell)
const;
70 public:
virtual void _setNextElement(
Cell* cell,
Cell* nextCell)
const;
77 private: DataBase* _dataBase;
78 private: Library* _library;
80 private: LibraryMap _libraryMap;
81 private: CellMap _cellMap;
82 private: Library* _nextOfLibraryLibraryMap;
87 protected: Library(DataBase* dataBase, Library* library,
const Name& name);
98 public:
string getHierarchicalName ()
const;
112 protected:
virtual void _postCreate();
114 protected:
virtual void _preDestroy();
116 public:
virtual string _getTypeName()
const {
return _TName(
"Library");};
117 public:
virtual string _getString()
const;
118 public:
virtual Record* _getRecord()
const;
119 public:
virtual void _toJson( JsonWriter* )
const;
120 public: LibraryMap& _getLibraryMap() {
return _libraryMap;};
121 public: CellMap& _getCellMap() {
return _cellMap;};
122 public: Library* _getNextOfLibraryLibraryMap()
const {
return _nextOfLibraryLibraryMap;};
124 public:
void _setNextOfLibraryLibraryMap(Library* library) {_nextOfLibraryLibraryMap = library;};
129 class JsonLibrary :
public JsonDBo {
132 public:
static void initialize();
133 public: JsonLibrary(
unsigned long flags);
134 public:
virtual string getTypeName()
const;
135 public:
virtual JsonLibrary* clone(
unsigned long)
const;
136 public:
virtual void toData(JsonStack&);
144 INSPECTOR_P_SUPPORT(Hurricane::Library::LibraryMap);
145 INSPECTOR_P_SUPPORT(Hurricane::Library::CellMap);
The model (API).
Definition: Cell.h:64
DataBase object root class (API).
Definition: DBo.h:45
The whole DataBase (API).
Definition: DataBase.h:40
Generic Collection auto-pointer.
Definition: Collection.h:235
Library description (API)
Definition: Library.h:38
void setName(const Name &name)
const Name & getName() const
Definition: Library.h:97
Cell * getCell(const Name &name) const
Definition: Library.h:101
DBo Inherit
Definition: Library.h:44
static Library * create(Library *library, const Name &name)
Libraries getLibraries() const
Definition: Library.h:100
Library * getLibrary() const
Definition: Library.h:96
DataBase * getDataBase() const
Definition: Library.h:95
Library * getLibrary(const Name &name) const
Definition: Library.h:99
Cells getCells() const
Definition: Library.h:102
static Library * create(DataBase *dataBase, const Name &name)
Name description (API)
Definition: Name.h:35
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5