23#include "hurricane/Component.h"
24#include "hurricane/Plugs.h"
37class Plug :
public Component {
40 static FastRTTI _fastRTTI;
42 static inline const FastRTTI& fastRTTI ();
43 virtual const FastRTTI& vfastRTTI ()
const;
54 private:
Net* _masterNet;
55 private: Plug* _nextOfInstancePlugMap;
60 protected: Plug(
Instance* instance,
Net* masterNet);
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; }
126class JsonPlug :
public JsonComponent {
129 public:
static void initialize();
130 public: JsonPlug(
unsigned long flags);
132 public:
virtual JsonPlug* clone(
unsigned long)
const;
133 public:
virtual void toData(JsonStack&);
140 public:
static void initialize();
141 public: JsonPlugRef(
unsigned long flags);
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
Net * getNet() const
Definition Component.h:102
virtual DbU::Unit getX() const =0
virtual DbU::Unit getY() const =0
virtual Point getPosition() const
Definition Component.h:108
virtual const Layer * getLayer() const =0
std::int64_t Unit
Definition DbU.h:67
virtual Box getBoundingBox() const =0
virtual Cell * getCell() const =0
virtual void materialize()=0
virtual void unmaterialize()=0
Instance description (API).
Definition Instance.h:35
Support for JSON export.
Definition JsonObject.h:83
virtual std::string getTypeName() const =0
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()
static PlugFilter getIsUnconnectedFilter()
Net * getMasterNet() const
Definition Plug.h:78
Component Inherit
Definition Plug.h:48
Instance * getInstance() const
Definition Plug.h:77
Point description (API).
Definition Point.h:30
Contains Almost Everything.
Definition BasicLayer.h:39
GenericFilter< Plug * > PlugFilter
Definition Plugs.h:51