41 class Pin :
public Contact {
43 typedef Contact Inherit;
45 static FastRTTI _fastRTTI;
47 static inline const FastRTTI& fastRTTI ();
48 virtual const FastRTTI& vfastRTTI ()
const;
51 class AccessDirection {
53 enum Code { UNDEFINED=0, NORTH=1, SOUTH=2, EAST=3, WEST=4 };
55 AccessDirection ( Code code=UNDEFINED );
56 AccessDirection (
const AccessDirection& accessDirection );
57 AccessDirection& operator= (
const AccessDirection& accessDirection );
58 operator Code ()
const {
return _code; };
59 Code getCode ()
const {
return _code; };
60 std::string _getTypeName ()
const {
return _TName(
"Pin::AccessDirection"); };
61 std::string _getString ()
const;
62 Record* _getRecord ()
const;
68 class PlacementStatus {
70 enum Code { UNPLACED=0, PLACED=1, FIXED=2 };
72 PlacementStatus ( Code code=UNPLACED);
73 PlacementStatus (
const PlacementStatus& placementstatus );
74 PlacementStatus& operator= (
const PlacementStatus& placementstatus );
75 operator Code ()
const {
return _code; };
76 Code getCode ()
const {
return _code; };
77 std::string _getTypeName ()
const {
return _TName(
"Pin::PlacementStatus"); };
78 std::string _getString ()
const;
79 Record* _getRecord ()
const;
87 ,
const AccessDirection&
88 ,
const PlacementStatus&
96 static Pin* create (
Net*
98 ,
const AccessDirection&
99 ,
const PlacementStatus&
107 const Name& getName ()
const {
return _name; };
108 const AccessDirection& getAccessDirection ()
const {
return _accessDirection; };
109 const PlacementStatus& getPlacementStatus ()
const {
return _placementStatus; };
110 bool isUnplaced ()
const {
return _placementStatus == PlacementStatus::UNPLACED; };
111 bool isPlaced ()
const {
return _placementStatus == PlacementStatus::PLACED; };
112 bool isFixed ()
const {
return _placementStatus == PlacementStatus::FIXED; };
113 void setPlacementStatus (
const PlacementStatus& );
115 virtual void _postCreate ();
116 virtual void _preDestroy ();
120 virtual std::string _getTypeName ()
const {
return _TName(
"Pin");};
121 virtual std::string _getString ()
const;
122 virtual Record* _getRecord ()
const;
123 Pin* _getNextOfCellPinMap ()
const {
return _nextOfCellPinMap; };
124 void _setNextOfCellPinMap ( Pin* pin ) { _nextOfCellPinMap = pin; };
127 AccessDirection _accessDirection;
128 PlacementStatus _placementStatus;
129 Pin* _nextOfCellPinMap;