17 #ifndef KITE_NEGOCIATE_WINDOW_H
18 #define KITE_NEGOCIATE_WINDOW_H
28 #include "katabatic/Grid.h"
29 #include "kite/RoutingEventQueue.h"
30 #include "kite/RoutingEventHistory.h"
31 #include "kite/RoutingEventLoop.h"
46 inline size_t getGCellsCount ()
const;
47 inline size_t getSegmentsCount ()
const;
48 inline size_t getEventsCount ()
const;
49 inline void setGCellsCount (
size_t );
50 inline void setSegmentsCount (
size_t );
51 inline void setEventsCount (
size_t );
52 inline void incGCellCount (
size_t );
53 inline void incSegmentsCount (
size_t );
54 inline void incEventsCount (
size_t );
55 inline Statistics& operator+= (
const Statistics& );
58 size_t _segmentsCount;
64 inline Statistics::Statistics ()
70 inline size_t Statistics::getGCellsCount ()
const {
return _gcellsCount; }
71 inline size_t Statistics::getSegmentsCount ()
const {
return _segmentsCount; }
72 inline size_t Statistics::getEventsCount ()
const {
return _eventsCount; }
73 inline void Statistics::setGCellsCount (
size_t count ) { _gcellsCount = count; }
74 inline void Statistics::setSegmentsCount (
size_t count ) { _segmentsCount = count; }
75 inline void Statistics::setEventsCount (
size_t count ) { _eventsCount = count; }
76 inline void Statistics::incGCellCount (
size_t count ) { _gcellsCount += count; }
77 inline void Statistics::incSegmentsCount (
size_t count ) { _segmentsCount += count; }
78 inline void Statistics::incEventsCount (
size_t count ) { _eventsCount += count; }
80 inline Statistics& Statistics::operator+= (
const Statistics& other )
82 _gcellsCount += other._gcellsCount;
83 _segmentsCount += other._segmentsCount;
84 _eventsCount += other._eventsCount;
104 inline const Katabatic::GCellVector&
getGCells ()
const;
109 void setGCells (
const Katabatic::GCellVector& );
116 void run (
unsigned int flags );
119 void _pack (
size_t& count,
bool last );
120 size_t _negociate ();
121 Hurricane::Record* _getRecord ()
const;
122 std::string _getString ()
const;
123 inline std::string _getTypeName ()
const;
130 Katabatic::GCellVector _gcells;
131 std::vector<TrackElement*> _segments;
135 Statistics _statistics;
155 inline std::string NegociateWindow::_getTypeName ()
const {
return "NegociateWindow"; }
161 #endif // KITE_NEGOCIATE_WINDOW_H
Atomic Placement Request for a TrackSegment.
Definition: RoutingEvent.h:55
void setInterrupt(bool)
Definition: NegociateWindow.h:153
Definition: NegociateWindow.h:95
Definition: NegociateWindow.h:96
RoutingEventQueue & getEventQueue()
Definition: NegociateWindow.h:151
bool isInterrupted() const
Definition: NegociateWindow.h:148
void rescheduleEvent(RoutingEvent *, unsigned int level)
Definition: NegociateWindow.h:154
RoutingEventLoop & getEventLoop()
void destroy()
Definition: NegociateWindow.cpp:185
void run(unsigned int flags)
Definition: NegociateWindow.cpp:557
RoutingEventHistory & getEventHistory()
Definition: NegociateWindow.h:152
TrackElement * createTrackSegment(AutoSegment *, unsigned int flags)
Definition: NegociateWindow.cpp:226
void printStatistics() const
Definition: NegociateWindow.cpp:602
double computeWirelength()
Definition: NegociateWindow.cpp:317
Simple loop dectector for RoutingEvent.
Definition: RoutingEventLoop.h:32
void addRoutingEvent(TrackElement *, unsigned int level)
Definition: NegociateWindow.cpp:212
Perform the routing, main RoutingEvent manager.
Definition: NegociateWindow.h:92
The Kite Tool.
Definition: KiteEngine.h:60
KiteEngine * getKiteEngine() const
Definition: NegociateWindow.h:149
History of RoutingEvent.
Definition: RoutingEventHistory.h:35
Hurricane::Cell * getCell() const
Definition: NegociateWindow.cpp:189
void setGCells(const Katabatic::GCellVector &)
Definition: NegociateWindow.cpp:193
const Katabatic::GCellVector & getGCells() const
Definition: NegociateWindow.h:150
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
Stage
Definition: NegociateWindow.h:95
The priority Queue of RoutingEvent.
Definition: RoutingEventQueue.h:35
static NegociateWindow * create(KiteEngine *)
Definition: NegociateWindow.cpp:174