17 #ifndef KITE_SEGMENT_FSM_H 18 #define KITE_SEGMENT_FSM_H 20 #include "kite/TrackCost.h" 27 class RoutingEventQueue;
28 class RoutingEventHistory;
44 , MoveToAxis = (1<< 8)
65 ,
unsigned int toState =0
68 inline unsigned int getType ()
const;
70 inline unsigned int setFlag (
unsigned int );
76 unsigned int _toState;
103 enum SlackenFlags { NoRecursive = (1<<0)
104 , NoTransition = (1<<1)
110 , RoutingEventHistory&
113 inline RoutingEvent*
getEvent ()
const;
114 inline RoutingEventQueue&
getQueue ()
const;
115 inline RoutingEventHistory&
getHistory ()
const;
116 inline unsigned int getState ()
const;
117 inline DataNegociate*
getData ();
120 inline vector<TrackCost>&
getCosts ();
121 inline TrackCost&
getCost (
size_t );
124 inline size_t getEnd (
size_t );
126 inline void setState (
unsigned int );
130 ,
unsigned int toState =0
137 bool solveTerminalVsGlobal ();
142 bool _slackenStrap ( TrackElement*&
144 ,
unsigned int flags );
145 bool _slackenLocal ( TrackElement*&
147 ,
unsigned int flags );
148 bool _slackenGlobal ( TrackElement*&
150 ,
unsigned int flags );
152 RoutingEvent* _event;
153 RoutingEventQueue& _queue;
154 RoutingEventHistory& _history;
156 DataNegociate* _data;
157 Interval _constraint;
159 vector<TrackCost> _costs;
160 vector<SegmentAction> _actions;
185 #endif // KITE_SEGMENT_FSM_H Atomic Placement Request for a TrackSegment.
Definition: RoutingEvent.h:55
void doActions()
Definition: SegmentFsm.cpp:583
Definition: SegmentFsm.h:58
Definition: SegmentFsm.h:41
Definition: SegmentFsm.h:54
unsigned int getState() const
Definition: SegmentFsm.h:169
Definition: SegmentFsm.h:57
TrackElement * getSegment() const
Definition: SegmentFsm.h:80
Definition: SegmentFsm.h:40
Definition: SegmentFsm.h:99
bool insertInTrack(size_t)
Definition: SegmentFsm.cpp:612
DataNegociate * getData()
Definition: SegmentFsm.h:170
Pseudo-decorator to process a RoutingEvent.
Definition: SegmentFsm.h:89
RoutingEventQueue & getQueue() const
Definition: SegmentFsm.h:167
unsigned int setFlag(unsigned int)
Definition: SegmentFsm.h:83
Type
Definition: SegmentFsm.h:36
bool desaturate()
Definition: SegmentFsm.cpp:939
Definition: SegmentFsm.h:98
Definition: SegmentFsm.h:53
Definition: SegmentFsm.h:93
void setAxisHint(DbU::Unit)
Definition: SegmentFsm.h:82
Definition: SegmentFsm.h:95
bool slackenTopology(unsigned int flags=0)
Definition: SegmentFsm.cpp:1205
Definition: SegmentFsm.h:101
Structure managing one routing track.
Definition: Track.h:42
State
Definition: SegmentFsm.h:92
TrackCost & getCost(size_t)
Definition: SegmentFsm.h:174
RoutingEvent * getEvent() const
Definition: SegmentFsm.h:166
Definition: SegmentFsm.h:45
vector< SegmentAction > & getActions()
Definition: SegmentFsm.h:178
SegmentAction(TrackElement *, unsigned int type, DbU::Unit axisHint=0, unsigned int toState=0)
Definition: SegmentFsm.cpp:349
Definition: SegmentFsm.h:59
unsigned int getType() const
Definition: SegmentFsm.h:81
Definition: SegmentFsm.h:56
Definition: SegmentFsm.h:50
Interval & getOptimal()
Definition: SegmentFsm.h:172
Definition: SegmentFsm.h:52
Definition: SegmentFsm.h:51
Definition: SegmentFsm.h:97
Definition: SegmentFsm.h:100
Track * getTrack(size_t)
Definition: SegmentFsm.h:175
bool doAction(RoutingEventQueue &)
Definition: SegmentFsm.cpp:361
History of RoutingEvent.
Definition: RoutingEventHistory.h:35
void clearActions()
Definition: SegmentFsm.h:180
bool solveFullBlockages()
Definition: SegmentFsm.cpp:893
Definition: SegmentFsm.h:38
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
Definition: SegmentFsm.h:48
bool conflictSolveByHistory()
Definition: SegmentFsm.cpp:633
void setState(unsigned int)
Definition: SegmentFsm.h:179
Definition: SegmentFsm.h:36
Definition: SegmentFsm.h:96
SegmentFsm(RoutingEvent *, RoutingEventQueue &, RoutingEventHistory &)
Definition: SegmentFsm.cpp:442
Definition: SegmentFsm.h:49
RoutingEventHistory & getHistory() const
Definition: SegmentFsm.h:168
The priority Queue of RoutingEvent.
Definition: RoutingEventQueue.h:35
bool isFullBlocked() const
Definition: SegmentFsm.h:165
Store request for an event to be generated on a TrackElement.
Definition: SegmentFsm.h:34
The namespace dedicated to Kite.
Definition: Constants.h:22
bool conflictSolveByPlaceds()
Definition: SegmentFsm.cpp:718
Definition: SegmentFsm.h:94
Definition: SegmentFsm.h:37
Definition: SegmentFsm.h:92
vector< TrackCost > & getCosts()
Definition: SegmentFsm.h:173
Definition: SegmentFsm.h:43
Algorimthmic datas associated the TrackSegment.
Definition: DataNegociate.h:50
Definition: SegmentFsm.h:42
Definition: SegmentFsm.h:55
Interval & getConstraint()
Definition: SegmentFsm.h:171
size_t getEnd(size_t)
Definition: SegmentFsm.h:177
Definition: SegmentFsm.h:39
void addAction(TrackElement *, unsigned int type, DbU::Unit axisHint=0, unsigned int toState=0)
Definition: SegmentFsm.cpp:571
Definition: SegmentFsm.h:47
Definition: SegmentFsm.h:46
size_t getBegin(size_t)
Definition: SegmentFsm.h:176