2018-06-06 11:42:26 -05:00
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'>
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html;charset=iso-8859-1" >
< title > Kite - Detailed Router< / title >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "SoC.css" rel = "stylesheet" type = "text/css" >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" >
< / head >
< h1 id = "pagetop" class = "header" > Kite - Detailed Router< / h1 >
<!--
< center class = "header" >
< table class = "header" >
< tr >
< td > < a href = "customSummary.html" > Summary< / a > < / td >
< td > < a href = "namespaces.html" > Namespaces< / a > < / td >
< td > < a href = "customHierarchy.html" > Class Hierarchy< / a > < / td >
< td > < a href = "annotated.html" > Classes< / a > < / td >
< td > < a href = "functions.html" > Member Index< / a > < / td >
< / tr >
< / table >
< / center >
-->
< br >
< body onload = "javascript:toggleLevel(1)" >
2018-10-18 11:10:01 -05:00
<!-- Generated by Doxygen 1.8.14 -->
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */< / script >
< div id = "main-nav" > < / div >
2018-06-06 11:42:26 -05:00
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" > < a class = "el" href = "namespaceKite.html" > Kite< / a > < / li > < li class = "navelem" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html" > RoutingEventQueue< / a > < / li > < / ul >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "summary" >
< a href = "#pub-methods" > Public Member Functions< / a > |
< a href = "classKite_1_1RoutingEventQueue-members.html" > List of all members< / a > < / div >
< div class = "headertitle" >
< div class = "title" > RoutingEventQueue Class Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< p > The priority Queue of < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > .
< a href = "classKite_1_1RoutingEventQueue.html#details" > More...< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pub-methods" > < / a >
Public Member Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a67dd3abe4f9f4f32e91dfaa9573976ca" > < td class = "memItemLeft" align = "right" valign = "top" >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a67dd3abe4f9f4f32e91dfaa9573976ca" > RoutingEventQueue< / a > ()< / td > < / tr >
< tr class = "separator:a67dd3abe4f9f4f32e91dfaa9573976ca" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a28ed9894863ae1029f16744a86d4bfab" > < td class = "memItemLeft" align = "right" valign = "top" >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a28ed9894863ae1029f16744a86d4bfab" > ~RoutingEventQueue< / a > ()< / td > < / tr >
< tr class = "separator:a28ed9894863ae1029f16744a86d4bfab" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-10-18 11:10:01 -05:00
< tr class = "memitem:a644718bb2fb240de962dc3c9a1fdf0dc" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a644718bb2fb240de962dc3c9a1fdf0dc" > empty< / a > () const< / td > < / tr >
< tr class = "separator:a644718bb2fb240de962dc3c9a1fdf0dc" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a259cb5a711406a8c3e5d937eb9350cca" > < td class = "memItemLeft" align = "right" valign = "top" > size_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a259cb5a711406a8c3e5d937eb9350cca" > size< / a > () const< / td > < / tr >
< tr class = "separator:a259cb5a711406a8c3e5d937eb9350cca" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a85befa55ce7e51c7067f4f7cb29acc0a" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a85befa55ce7e51c7067f4f7cb29acc0a" > getTopEventLevel< / a > () const< / td > < / tr >
< tr class = "separator:a85befa55ce7e51c7067f4f7cb29acc0a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-06-06 11:42:26 -05:00
< tr class = "memitem:af1b85d0b49565932c55ec55625cd8838" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#af1b85d0b49565932c55ec55625cd8838" > pop< / a > ()< / td > < / tr >
< tr class = "separator:af1b85d0b49565932c55ec55625cd8838" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-10-18 11:10:01 -05:00
< tr class = "memitem:a7f5a051812b2925dc3c1cca8b2011237" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a7f5a051812b2925dc3c1cca8b2011237" > load< / a > (const vector< < a class = "el" href = "classKite_1_1TrackElement.html" > TrackElement< / a > *> & )< / td > < / tr >
< tr class = "separator:a7f5a051812b2925dc3c1cca8b2011237" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-06-06 11:42:26 -05:00
< tr class = "memitem:af0813b67c9fc72d960f7e512e9403d57" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#af0813b67c9fc72d960f7e512e9403d57" > add< / a > (< a class = "el" href = "classKite_1_1TrackElement.html" > TrackElement< / a > *, unsigned int level)< / td > < / tr >
< tr class = "separator:af0813b67c9fc72d960f7e512e9403d57" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac802427673567526d06af911e94f7216" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#ac802427673567526d06af911e94f7216" > push< / a > (< a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > *)< / td > < / tr >
< tr class = "separator:ac802427673567526d06af911e94f7216" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:afd2fa6d6f5d90c472bea9befa97d955d" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#afd2fa6d6f5d90c472bea9befa97d955d" > repush< / a > (< a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > *)< / td > < / tr >
< tr class = "separator:afd2fa6d6f5d90c472bea9befa97d955d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4fb0022d3e8f91a862b5f6438b7f8dad" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a4fb0022d3e8f91a862b5f6438b7f8dad" > repushInvalidateds< / a > ()< / td > < / tr >
< tr class = "separator:a4fb0022d3e8f91a862b5f6438b7f8dad" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad55316f5135cdae6aa6c5a763f6c3473" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#ad55316f5135cdae6aa6c5a763f6c3473" > commit< / a > ()< / td > < / tr >
< tr class = "separator:ad55316f5135cdae6aa6c5a763f6c3473" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac8bb3912a3ce86b15842e79d0b421204" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html#ac8bb3912a3ce86b15842e79d0b421204" > clear< / a > ()< / td > < / tr >
< tr class = "separator:ac8bb3912a3ce86b15842e79d0b421204" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< div class = "textblock" > < p > The priority Queue of < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > . < / p >
< h1 > < a class = "anchor" id = "secImplRoutingEventQueue" > < / a >
Implementation Details< / h1 >
2018-10-18 11:10:01 -05:00
< p > The < a class = "el" href = "classKite_1_1RoutingEventQueue.html" title = "The priority Queue of RoutingEvent. " > RoutingEventQueue< / a > is build upon a STL multiset< > and is sorted according to the < a class = "el" href = "classKite_1_1RoutingEvent_1_1Key.html" title = "RoutingEvent cached key for maps. " > RoutingEvent::Key< / a > attribute of the event. The key attribute has been designed specifically to be used with this queue. It provides the features:< / p > < ul >
2018-06-06 11:42:26 -05:00
< li > Sort the < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > according to their priority. Higher priority mainly means more constrained segment, which must be routed first.< / li >
< li > The attributes of < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > may change while inserted in the queue. The key provide a cached value of those attributes ensuring a stable sorting order.< / li >
< / ul >
< p > For more details about the sorting order, refer to < a class = "el" href = "classKite_1_1RoutingEvent_1_1Key.html" title = "RoutingEvent cached key for maps. " > RoutingEvent::Key< / a > .< / p >
< p > < b > Insertion, Reinsertion & Commit< / b > < / p >
< p > When pushing a new event into the queue, the actual insertion into the multimap is delayed until the next call to < code > RoutingEvent::commit()< / code > . The to be inserted events are stored into a request set which is processed when commit is called. At commit time, the < a class = "el" href = "classKite_1_1RoutingEvent_1_1Key.html" title = "RoutingEvent cached key for maps. " > RoutingEvent::Key< / a > cache is updated just before inserting the element.< / p >
< p > When repushing an event, the event is immediatly withdrawn from the queue and put into the request set.< / p >
< p > < b > Mutiple Event for one Segment< / b > < / p >
< p > As < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > can be cloned, there may be more than one event pointing to a segment. But there must be < em > only one active event< / em > , the one which is pointed to by the segment. As a result, there maybe multiple events for an unique segment in the queue, but < em > only one active event< / em > , the one that will be processed. < / p >
< / div > < h2 class = "groupheader" > Constructor & Destructor Documentation< / h2 >
2018-10-18 11:10:01 -05:00
< a id = "a67dd3abe4f9f4f32e91dfaa9573976ca" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a67dd3abe4f9f4f32e91dfaa9573976ca" > ◆ < / a > < / span > RoutingEventQueue()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "classKite_1_1RoutingEventQueue.html" > RoutingEventQueue< / a > < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Contructor, create an empty queue. < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "a28ed9894863ae1029f16744a86d4bfab" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a28ed9894863ae1029f16744a86d4bfab" > ◆ < / a > < / span > ~RoutingEventQueue()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > ~< a class = "el" href = "classKite_1_1RoutingEventQueue.html" > RoutingEventQueue< / a > < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Destructor.< / p >
2018-10-18 11:10:01 -05:00
< dl class = "section user" > < dt > Remark: The destruction of the queue do not delete the< / dt > < dd > < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > that may still be in it (they shouldn't an a warning is issued). < / dd > < / dl >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
< h2 class = "groupheader" > Member Function Documentation< / h2 >
2018-10-18 11:10:01 -05:00
< a id = "a644718bb2fb240de962dc3c9a1fdf0dc" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a644718bb2fb240de962dc3c9a1fdf0dc" > ◆ < / a > < / span > empty()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > bool empty < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < b > Returns:< / b > < b > true< / b > if there is the queue is empty. < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "a259cb5a711406a8c3e5d937eb9350cca" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a259cb5a711406a8c3e5d937eb9350cca" > ◆ < / a > < / span > size()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > size_t size < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < b > Returns:< / b > The number of events in the queue. < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "a85befa55ce7e51c7067f4f7cb29acc0a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a85befa55ce7e51c7067f4f7cb29acc0a" > ◆ < / a > < / span > getTopEventLevel()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > unsigned int getTopEventLevel < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < b > Returns:< / b > The greatest event level the queue has ever reached (always increasing, starting from zero). < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "af1b85d0b49565932c55ec55625cd8838" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af1b85d0b49565932c55ec55625cd8838" > ◆ < / a > < / span > pop()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > * pop < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Remove the top element of the queue (i.e. the one with the highest priority) and return it. If the queue is empty, < code > NULL< / code > is returned. < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "a7f5a051812b2925dc3c1cca8b2011237" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7f5a051812b2925dc3c1cca8b2011237" > ◆ < / a > < / span > load()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void load < / td >
< td > (< / td >
2018-10-18 11:10:01 -05:00
< td class = "paramtype" > const vector< < a class = "el" href = "classKite_1_1TrackElement.html" > TrackElement< / a > *> &   < / td >
2018-06-06 11:42:26 -05:00
< td class = "paramname" > < em > segments< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2018-10-18 11:10:01 -05:00
< p > Load a whole vector of < a class = "el" href = "classKite_1_1TrackElement.html" title = "Abstract Class for all Elements inserted inside a Track. " > TrackElement< / a > into the queue, for each element:< / p > < ul >
2018-06-06 11:42:26 -05:00
< li > Create a < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > linked to the element. < span class = "red" > To be reviewed: replace any previous event.< / span > < / li >
< li > Insert the new < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > into the queue.< / li >
< / ul >
< p > < em > No commit is needed after this operation.< / em > < / p >
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "af0813b67c9fc72d960f7e512e9403d57" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af0813b67c9fc72d960f7e512e9403d57" > ◆ < / a > < / span > add()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void add < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "classKite_1_1TrackElement.html" > TrackElement< / a > *  < / td >
< td class = "paramname" > < em > element< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > unsigned int  < / td >
< td class = "paramname" > < em > level< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Create a new < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > in the queue with < code > level< / code > , associated to < code > element< / code > . A commit is needed afterwards.< / p >
< p > < span class = "red" > To be reviewed: replace any previous event on element.< / span > < / p >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1NegociateWindow.html#a51ba8e6a122c0cb93174027658cade63" > NegociateWindow::addRoutingEvent()< / a > .< / p >
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "ac802427673567526d06af911e94f7216" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ac802427673567526d06af911e94f7216" > ◆ < / a > < / span > push()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void push < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > *  < / td >
< td class = "paramname" > < em > event< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Push a < a class = "el" href = "classKite_1_1RoutingEvent.html" title = "Atomic Placement Request for a TrackSegment. " > RoutingEvent< / a > in the queue. Effective only after the next commit. < / p >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1RoutingEventQueue.html#af0813b67c9fc72d960f7e512e9403d57" > RoutingEventQueue::add()< / a > , and < a class = "el" href = "classKite_1_1RoutingEventQueue.html#afd2fa6d6f5d90c472bea9befa97d955d" > RoutingEventQueue::repush()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "afd2fa6d6f5d90c472bea9befa97d955d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#afd2fa6d6f5d90c472bea9befa97d955d" > ◆ < / a > < / span > repush()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void repush < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "classKite_1_1RoutingEvent.html" > RoutingEvent< / a > *  < / td >
< td class = "paramname" > < em > event< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Force a complete queue re-insertion for < code > event< / code > . The event is immediatly withdrawn from the queue and put into the insertion request set.< / p >
< p > If the < code > event< / code > is not already in the queue, works like < a class = "el" href = "classKite_1_1RoutingEventQueue.html#ac802427673567526d06af911e94f7216" > RoutingEventQueue::push()< / a > . < / p >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a4fb0022d3e8f91a862b5f6438b7f8dad" > RoutingEventQueue::repushInvalidateds()< / a > , and < a class = "el" href = "classKite_1_1RoutingEvent.html#abf2d02f18f96183fc6e78f3e6dc8cbf6" > RoutingEvent::reschedule()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "a4fb0022d3e8f91a862b5f6438b7f8dad" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4fb0022d3e8f91a862b5f6438b7f8dad" > ◆ < / a > < / span > repushInvalidateds()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void repushInvalidateds < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2018-10-18 11:10:01 -05:00
< p > Using the list of invalidated segments from the < a class = "el" href = "classKite_1_1Session.html" title = "Kite update Session. " > Session< / a > , repush them if:< / p > < ul >
2018-06-06 11:42:26 -05:00
< li > They have an associated event.< / li >
< li > The event is not < em > unimplemented< / em > , < em > disabled< / em > or < em > processed< / em > . < / li >
< / ul >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1RoutingEvent.html#a6add4f520081c698421481bf8fe0ad1f" > RoutingEvent::process()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "ad55316f5135cdae6aa6c5a763f6c3473" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad55316f5135cdae6aa6c5a763f6c3473" > ◆ < / a > < / span > commit()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void commit < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Process the insertion request set and actually insert it's elements into the queue. Perform a RoutingEvent::key update prior to insertion. < / p >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1RoutingEvent.html#a6add4f520081c698421481bf8fe0ad1f" > RoutingEvent::process()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-10-18 11:10:01 -05:00
< a id = "ac8bb3912a3ce86b15842e79d0b421204" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ac8bb3912a3ce86b15842e79d0b421204" > ◆ < / a > < / span > clear()< / h2 >
2018-06-06 11:42:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void clear < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Empty the queue. Issue a warning if the queue is not empty (i.e. some events remains to be processeds). < / p >
2018-10-18 11:10:01 -05:00
< p class = "reference" > Referenced by < a class = "el" href = "classKite_1_1RoutingEventQueue.html#a28ed9894863ae1029f16744a86d4bfab" > RoutingEventQueue::~RoutingEventQueue()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
< hr / > The documentation for this class was generated from the following files:< ul >
< li > < a class = "el" href = "RoutingEventQueue_8h_source.html" > RoutingEventQueue.h< / a > < / li >
< li > RoutingEventQueue.cpp< / li >
< li > RoutingEventQueue.dox< / li >
< / ul >
< / div > <!-- contents -->
< br >
< hr >
< table class = "footer1" >
< tr >
Migrating the initialisation system to be completely Python-like.
* New: In bootstrap/coriolisEnv.py, add the "etc" directory to the
PYTHONPATH as initialization are now Python modules.
* New: In Hurricane/analogic, first groundwork for the integration of
PIP/MIM/MOM multi-capacitors. Add C++ and Python interface for the
allocation matrix and the list of capacities values.
* Change: In Hurricane::RegularLayer, add a layer parameter to the
constructor so the association between the RegularLayer and it's
BasicLayer can readily be done.
* Change: In Hurricane::Layer, add a new getCut() accessor to get the
cut layer in ViaLayer.
* Change: In Hurricane::DataBase::get(), the Python wrapper should no
longer consider an error if the data-base has not been created yet.
Just return None.
* Bug: In Isobar::PyLayer::getEnclosure() wrapper, if the overall
enclosure is requested, pass the right parameter to the C++ function.
* Change: In AllianceFramework, make public _bindLibraries() and export
it to the Python interface.
* Change: In AllianceFramework::create(), do not longer call bindLibraries().
This now must be done explicitely and afterwards.
* Change: In AllianceFramework::createLibrary() and
Environement::addSYSTEM_LIBRARY(), minor bug corrections that I don't
recall.
* Change: In SearchPath::prepend(), set the selected index to zero and
return it.
* Change: In CRL::System CTOR, add "etc" to the PYTHONPATH as the
configuration files are now organized as Python modules.
* New: In PyCRL, export the CRL::System singleton, it's creation is no
longer triggered by the one of AllianceFramework.
* New: In CRL/etc/, convert most of the configuration files into the
Python module format. For now, keep the old ".conf", but that are no
longer used.
For the real technologies, we cannot keep the directory name as
"180" or "45" as it not allowed by Python syntax, so we create "node180"
or "node45" instead.
Most of the helpers and coriolisInit.py are no longer used now.
To be removed in future commits after being sure that everything
works...
* Bug: In AutoSegment::makeDogleg(AutoContact*), the layer of the contacts
where badly computed when one end of the original segment was attached
to a non-preferred direction segment (mostly on terminal contacts).
Now use the new AutoContact::updateLayer() method.
* Bug: In Dijkstra::load(), limit symetric search area only if the net
is a symmetric one !
* Change: In Katana/python/katanaInit.py, comply with the new initialisation
scheme.
* Change: In Unicorn/cgt.py, comply to the new inititalization scheme.
* Change: In cumulus various Python scripts remove the call to
helpers.staticInitialization() as they are not needed now (we run in
only *one* interpreter, so we correctly share all init).
In plugins/__init__.py, read the new NDA directory variable.
* Bug: In cumulus/plugins/Chip.doCoronafloorplan(), self.railsNb was not
correctly managed when there was no clock.
* Change: In cumulus/plugins/Configuration.coronaContactArray(), compute
the viaPitch from the technology instead of the hard-coded 4.0 lambdas.
In Configuration.loadConfiguration(), read the "ioring.py" from
the new user's settings module.
* Bug: In stratus.dpgen_ADSB2F, gives coordinates translated into DbU to
the XY functions.
In st_model.Save(), use the VstUseConcat flag to get correct VST files.
In st_net.hur_net(), when a net is POWER/GROUND or CLOCK also make it
global.
* Change: In Oroshi/python/WIP_Transistor.py, encapsulate the generator
inside a try/except block to get prettier error (and stop at the first).
2019-10-28 12:09:14 -05:00
< td class = "LFooter" > < small > Generated by doxygen 1.8.14 on Mon Oct 28 2019< / small > < / td >
2018-06-06 11:42:26 -05:00
< td class = "RFooter" > < a href = '#pagetop' > < small > Return to top of page< / small > < / a > < / td >
< / tr >
< / table >
< table class = "footer2" >
< tr >
< td class = "LFooter" > Kite - Detailed Router< / td >
< td class = "RFooter" > < small > Copyright © 2008-2016 UPMC. All rights reserved< / small > < / td >
< / tr >
< / table >
< / body >
< / html >