17 #ifndef KITE_DATA_NEGOCIATE_H 18 #define KITE_DATA_NEGOCIATE_H 27 #include "kite/TrackElement.h" 38 using Hurricane::Record;
56 , ConflictSolveByHistory = 5
57 , ConflictSolveByPlaceds = 6
67 inline bool hasRoutingEvent ()
const;
71 inline Track* getTrack ()
const;
72 inline DbU::Unit getLeftMinExtend ()
const;
73 inline DbU::Unit getRightMinExtend ()
const;
74 inline unsigned int getTerminals ()
const;
75 inline Net* getNet ()
const;
76 inline unsigned int getState ()
const;
77 inline unsigned int getStateCount ()
const;
78 inline unsigned int getRipupCount ()
const;
79 inline unsigned int getStateAndRipupCount ()
const;
81 inline const vector<TrackElement*>& getPerpandiculars ()
const;
82 inline const Interval& getPerpandicularFree ()
const;
83 inline void setState (
unsigned int,
unsigned int flags=0 );
86 inline void setRipupCount (
unsigned int );
87 inline void incRipupCount ();
88 inline void decRipupCount ();
89 inline void resetRipupCount ();
90 inline void resetStateCount ();
93 Record* _getRecord ()
const;
94 string _getString ()
const;
95 inline string _getTypeName ()
const;
102 unsigned int _state : 5;
103 unsigned int _stateCount : 5;
104 unsigned int _terminals : 5;
105 unsigned int _ripupCount : 16;
108 vector<DbU::Unit> _attractors;
109 vector<TrackElement*> _perpandiculars;
119 inline bool DataNegociate::hasRoutingEvent ()
const {
return _routingEvent != NULL; }
120 inline RoutingEvent* DataNegociate::getRoutingEvent ()
const {
return _routingEvent; }
121 inline TrackElement* DataNegociate::getTrackSegment ()
const {
return _trackSegment; }
122 inline TrackElement* DataNegociate::getChildSegment ()
const {
return _childSegment; }
123 inline Track* DataNegociate::getTrack ()
const {
return _trackSegment->getTrack(); }
124 inline unsigned int DataNegociate::getState ()
const {
return _state; }
125 inline unsigned int DataNegociate::getTerminals ()
const {
return _terminals; }
126 inline unsigned int DataNegociate::getRipupCount ()
const {
return _ripupCount; }
127 inline DbU::Unit DataNegociate::getLeftMinExtend ()
const {
return _leftMinExtend; }
128 inline DbU::Unit DataNegociate::getRightMinExtend ()
const {
return _rightMinExtend; }
129 inline Net* DataNegociate::getNet ()
const {
return _net; }
130 inline const vector<TrackElement*>& DataNegociate::getPerpandiculars ()
const {
return _perpandiculars; }
131 inline const Interval& DataNegociate::getPerpandicularFree ()
const {
return _perpandicularFree; }
132 inline unsigned int DataNegociate::getStateCount ()
const {
return _stateCount; }
133 inline void DataNegociate::resetStateCount () { _stateCount=0; }
134 inline void DataNegociate::setRoutingEvent (
RoutingEvent* event ) { _routingEvent = event; }
135 inline void DataNegociate::setChildSegment (
TrackElement* child ) { _childSegment = child; }
136 inline void DataNegociate::setRipupCount (
unsigned int count ) { _ripupCount = count; }
137 inline void DataNegociate::incRipupCount () { _ripupCount++; }
138 inline void DataNegociate::decRipupCount () {
if (_ripupCount) _ripupCount--; }
139 inline void DataNegociate::resetRipupCount () { _ripupCount = 0; }
140 inline string DataNegociate::_getTypeName ()
const {
return "DataNegociate"; }
142 inline void DataNegociate::setState (
unsigned int state,
unsigned int flags )
152 inline unsigned int DataNegociate::getStateAndRipupCount ()
const 153 {
return (_state << 4) + _ripupCount; }
158 #endif // KITE_DATA_NEGOCIATE_H Atomic Placement Request for a TrackSegment.
Definition: RoutingEvent.h:55
SlackState
Definition: DataNegociate.h:52
Structure managing one routing track.
Definition: Track.h:42
Definition: Constants.h:43
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
The namespace dedicated to Kite.
Definition: Constants.h:22
Algorimthmic datas associated the TrackSegment.
Definition: DataNegociate.h:50