20 #ifndef HURRICANE_PLUG
21 #define HURRICANE_PLUG
23 #include "hurricane/Component.h"
24 #include "hurricane/Plugs.h"
40 static FastRTTI _fastRTTI;
42 static inline const FastRTTI& fastRTTI ();
43 virtual const FastRTTI& vfastRTTI ()
const;
54 private:
Net* _masterNet;
55 private:
Plug* _nextOfInstancePlugMap;
65 public:
virtual void destroy();
70 public:
virtual Cell* getCell()
const;
73 public:
virtual Point getPosition()
const;
74 public:
virtual Box getBoundingBox()
const;
75 public:
virtual const Layer* getLayer()
const {
return NULL;};
76 public:
virtual Box getBoundingBox(
const BasicLayer* basicLayer)
const;
98 public:
virtual void materialize() {};
99 public:
virtual void unmaterialize() {};
104 public:
static Plug* _create(Instance* instance, Net* masterNet);
105 protected:
virtual void _postCreate();
107 public:
void _destroy();
108 protected:
virtual void _preDestroy();
110 public:
virtual string getName()
const;
111 public:
virtual void _toJson(JsonWriter*)
const;
112 public:
virtual string _getTypeName()
const {
return _TName(
"Plug");};
113 public:
virtual string _getString()
const;
114 public:
virtual Record* _getRecord()
const;
115 public: Plug* _getNextOfInstancePlugMap()
const {
return _nextOfInstancePlugMap;};
117 public:
virtual void _setMasterNet(Net* masterNet) {_masterNet = masterNet;};
118 public:
void _setNextOfInstancePlugMap(Plug* plug) {_nextOfInstancePlugMap = plug;};
123 inline const FastRTTI& Plug::fastRTTI () {
return _fastRTTI; }
126 class JsonPlug :
public JsonComponent {
129 public:
static void initialize();
130 public: JsonPlug(
unsigned long flags);
131 public:
virtual string getTypeName()
const;
132 public:
virtual JsonPlug* clone(
unsigned long)
const;
133 public:
virtual void toData(JsonStack&);
137 class JsonPlugRef :
public JsonObject {
140 public:
static void initialize();
141 public: JsonPlugRef(
unsigned long flags);
142 public:
virtual string getTypeName()
const;
143 public:
virtual JsonPlugRef* clone(
unsigned long)
const;
144 public:
virtual void toData(JsonStack&);
BasicLayer description (API)
Definition: BasicLayer.h:42
Box description (API)
Definition: Box.h:30
The model (API).
Definition: Cell.h:64
Component description (API)
Definition: Component.h:43
Net * getNet() const
Definition: Component.h:102
std::int64_t Unit
Definition: DbU.h:67
Generic Filter auto-pointer.
Definition: Filter.h:86
Instance description (API)
Definition: Instance.h:35
Layer description (API)
Definition: Layer.h:120
Net description (API)
Definition: Net.h:46
Plug description (API)
Definition: Plug.h:37
bool isConnected() const
Definition: Plug.h:89
static PlugFilter getIsConnectedFilter()
Net * getMasterNet() const
Definition: Plug.h:78
Instance * getInstance() const
Definition: Plug.h:77
Component Inherit
Definition: Plug.h:48
static PlugFilter getIsUnconnectedFilter()
Point description (API)
Definition: Point.h:30
Contains Almost Everything.
Definition: BasicLayer.h:39