<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Katabatic Documentation</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">Katabatic - Routing Toolbox</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)"> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceKatabatic.html">Katabatic</a></li><li class="navelem"><a class="el" href="classKatabatic_1_1Session.html">Session</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="classKatabatic_1_1Session-members.html">List of all members</a> | <a href="#pub-static-methods">Static Public Member Functions</a> </div> <div class="headertitle"> <div class="title">Session Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>Modification <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> for <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a>. <a href="classKatabatic_1_1Session.html#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr class="memitem:a037c7ec3b18ec43973f2e6fe3a172000"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a037c7ec3b18ec43973f2e6fe3a172000">isInDemoMode</a> ()</td></tr> <tr class="separator:a037c7ec3b18ec43973f2e6fe3a172000"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad41e6fb02bd7bb01c27fb6aae36f0ddc"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ad41e6fb02bd7bb01c27fb6aae36f0ddc">doWarnGCellOverload</a> ()</td></tr> <tr class="separator:ad41e6fb02bd7bb01c27fb6aae36f0ddc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76f17c3642eaeba85fa0af5ae9d208b4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1Session.html">Session</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a76f17c3642eaeba85fa0af5ae9d208b4">get</a> (const char *message=NULL)</td></tr> <tr class="separator:a76f17c3642eaeba85fa0af5ae9d208b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a109acfd064f3c1854abb8bb2c9b4ad30"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Technology.html">Technology</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a109acfd064f3c1854abb8bb2c9b4ad30">getTechnology</a> ()</td></tr> <tr class="separator:a109acfd064f3c1854abb8bb2c9b4ad30"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1ec4ff2ad2a5b964c0ff98170a366197"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a1ec4ff2ad2a5b964c0ff98170a366197">getKatabatic</a> ()</td></tr> <tr class="separator:a1ec4ff2ad2a5b964c0ff98170a366197"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4d9fd503149d2fff66eb8ba3955b7a13"><td class="memItemLeft" align="right" valign="top">static const Configuration * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a4d9fd503149d2fff66eb8ba3955b7a13">getConfiguration</a> ()</td></tr> <tr class="separator:a4d9fd503149d2fff66eb8ba3955b7a13"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a266a4079ca235e8fdb622ef4996d324d"><td class="memItemLeft" align="right" valign="top">static float </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a266a4079ca235e8fdb622ef4996d324d">getSaturateRatio</a> ()</td></tr> <tr class="separator:a266a4079ca235e8fdb622ef4996d324d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adfdaa8b3e81de14fce1f99444b35fcda"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#adfdaa8b3e81de14fce1f99444b35fcda">getSaturateRp</a> ()</td></tr> <tr class="separator:adfdaa8b3e81de14fce1f99444b35fcda"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a909ce95ac840ee708f9a49366f0c2690"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a909ce95ac840ee708f9a49366f0c2690">getExtensionCap</a> ()</td></tr> <tr class="separator:a909ce95ac840ee708f9a49366f0c2690"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9a05289b33122f312aa2c88c4b023292"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore" href="../crlcore/classCRL_1_1RoutingGauge.html">RoutingGauge</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">getRoutingGauge</a> ()</td></tr> <tr class="separator:a9a05289b33122f312aa2c88c4b023292"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3efd0f0d87be640dc566c1afd821e5e6"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a3efd0f0d87be640dc566c1afd821e5e6">getRoutingLayer</a> (size_t)</td></tr> <tr class="separator:a3efd0f0d87be640dc566c1afd821e5e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad3ee60a34f480bd3aecd8c7d957ff52e"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ad3ee60a34f480bd3aecd8c7d957ff52e">getContactLayer</a> (size_t)</td></tr> <tr class="separator:ad3ee60a34f480bd3aecd8c7d957ff52e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac9c144a8faf97714069824933970923c"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ac9c144a8faf97714069824933970923c">getSegmentStackSize</a> ()</td></tr> <tr class="separator:ac9c144a8faf97714069824933970923c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0d0c0159030a32b78ab4ad2b58871bce"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a0d0c0159030a32b78ab4ad2b58871bce">getContactStackSize</a> ()</td></tr> <tr class="separator:a0d0c0159030a32b78ab4ad2b58871bce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6060b7e972f3c0d10cfa158b5ed174e6"><td class="memItemLeft" align="right" valign="top">static const vector<br class="typebreak"/> < <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a6060b7e972f3c0d10cfa158b5ed174e6">getInvalidateds</a> ()</td></tr> <tr class="separator:a6060b7e972f3c0d10cfa158b5ed174e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af5675d50557db83d11b7d2151de5f34c"><td class="memItemLeft" align="right" valign="top">static const vector<br class="typebreak"/> < <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#af5675d50557db83d11b7d2151de5f34c">getRevalidateds</a> ()</td></tr> <tr class="separator:af5675d50557db83d11b7d2151de5f34c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a84211b77fe7fb8b49a93d7f298a5de90"><td class="memItemLeft" align="right" valign="top">static const vector<br class="typebreak"/> < <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a84211b77fe7fb8b49a93d7f298a5de90">getDoglegs</a> ()</td></tr> <tr class="separator:a84211b77fe7fb8b49a93d7f298a5de90"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6c3be93d98029b06138f633342d04157"><td class="memItemLeft" align="right" valign="top">static const set< <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a6c3be93d98029b06138f633342d04157">getNetsModificateds</a> ()</td></tr> <tr class="separator:a6c3be93d98029b06138f633342d04157"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a000e098850f6cccff6b289a294149a41"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1Session.html">Session</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a000e098850f6cccff6b289a294149a41">open</a> (<a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> *)</td></tr> <tr class="separator:a000e098850f6cccff6b289a294149a41"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5ae591df94fc66ccb85cbb6565368bca"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a5ae591df94fc66ccb85cbb6565368bca">close</a> ()</td></tr> <tr class="separator:a5ae591df94fc66ccb85cbb6565368bca"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af9919aefa1db2478b3d1813c1872d175"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#af9919aefa1db2478b3d1813c1872d175">setKatabaticFlags</a> (unsigned int)</td></tr> <tr class="separator:af9919aefa1db2478b3d1813c1872d175"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aed01e83f7d8dc7acd85156256a9e776c"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#aed01e83f7d8dc7acd85156256a9e776c">dogleg</a> (<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *)</td></tr> <tr class="separator:aed01e83f7d8dc7acd85156256a9e776c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69fc41ca90fae86766ae9d528394868f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a69fc41ca90fae86766ae9d528394868f">revalidateTopology</a> ()</td></tr> <tr class="separator:a69fc41ca90fae86766ae9d528394868f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a16f4761496e07b9e836642d1effa1993"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a16f4761496e07b9e836642d1effa1993">setInvalidateMask</a> (unsigned int)</td></tr> <tr class="separator:a16f4761496e07b9e836642d1effa1993"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae310a7c2c301b7e5f90fba5d34cc5be9"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ae310a7c2c301b7e5f90fba5d34cc5be9">invalidate</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *)</td></tr> <tr class="separator:ae310a7c2c301b7e5f90fba5d34cc5be9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1f8da0ae3a9d714c1dfae69904acec5f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a1f8da0ae3a9d714c1dfae69904acec5f">invalidate</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *)</td></tr> <tr class="separator:a1f8da0ae3a9d714c1dfae69904acec5f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7968875ccb5abb2c6f6d5dec92027550"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a7968875ccb5abb2c6f6d5dec92027550">invalidate</a> (<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *)</td></tr> <tr class="separator:a7968875ccb5abb2c6f6d5dec92027550"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4da9e28432c1fdb0c754717487d9cc83"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a4da9e28432c1fdb0c754717487d9cc83">revalidate</a> ()</td></tr> <tr class="separator:a4da9e28432c1fdb0c754717487d9cc83"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8fad7191a9fc248f84e71cf1c9d0c6be"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a8fad7191a9fc248f84e71cf1c9d0c6be">link</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *)</td></tr> <tr class="separator:a8fad7191a9fc248f84e71cf1c9d0c6be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab12ddab837097ec298ede4f66302b677"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ab12ddab837097ec298ede4f66302b677">link</a> (<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *)</td></tr> <tr class="separator:ab12ddab837097ec298ede4f66302b677"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10c42636ea5786d898d530905ccb30d6"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a10c42636ea5786d898d530905ccb30d6">unlink</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *)</td></tr> <tr class="separator:a10c42636ea5786d898d530905ccb30d6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab815a7824e0253142af6b8a204c361ec"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#ab815a7824e0253142af6b8a204c361ec">unlink</a> (<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *)</td></tr> <tr class="separator:ab815a7824e0253142af6b8a204c361ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acc20c1f675cc59f9a0068aba727eca47"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">lookup</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> *)</td></tr> <tr class="separator:acc20c1f675cc59f9a0068aba727eca47"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6e465f0a592fee7e1e45b6c825b8a5da"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1Session.html#a6e465f0a592fee7e1e45b6c825b8a5da">lookup</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *)</td></tr> <tr class="separator:a6e465f0a592fee7e1e45b6c825b8a5da"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Modification <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> for <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a>. </p> <p>To perform modifications, the <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> data structure uses a session mechanism built on top of the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1UpdateSession.html">Hurricane::UpdateSession</a> one. Sessions obeys very simples rules:</p> <ul> <li>Only one <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> can be opened at a time with <a class="el" href="classKatabatic_1_1Session.html#a000e098850f6cccff6b289a294149a41">Session::open()</a>.</li> <li>Subsequent calls to <a class="el" href="classKatabatic_1_1Session.html#a000e098850f6cccff6b289a294149a41">Session::open()</a> returns the currently opened session until <a class="el" href="classKatabatic_1_1Session.html#a5ae591df94fc66ccb85cbb6565368bca">Session::close()</a> is called.</li> <li>Revalidation can take place whithout closing the <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> by calling <a class="el" href="classKatabatic_1_1Session.html#a4da9e28432c1fdb0c754717487d9cc83">Session::revalidate()</a>.</li> </ul> <p>The task of a <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> is to keep track of the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> and <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> that have been modificateds (i.e. invalidated) and, to restore connexity and/or topology when closed.</p> <p>Two kinds of revalidation could be performed: </p> <ul> <li> <b>Geometrical</b> : only positions of AutoContacts and AutoSegments extensions are recomputed. </li> <li> <b>Topological</b> : a whole net have been invalidated because of a dogleg creation or a move up/move down of a segment. <ul> <li> <b>Dogleg</b> : needs to insert the newly created AutoSegments and AutoContacts. </li> <li> <b>Move up/Move down</b> : may needs to create additional dogleg to restore connexity (gaps), and then insert them like above. </li> </ul> After a topological mofication has been done, the net needs to be re-canonized then the geometrical step takes place. </li> </ul> <p>The kind of revalidation needed is automatically detected by the <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a>.</p> <p>In addition to it's main purpose, <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> also provides cached access to frequently needed variables either from <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/namespaceHurricane.html">Hurricane</a> or <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> Configuration and access to the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> & <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> LUTs of <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a>.</p> <p>From a software point of view, <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> is a singleton object.</p> <h1><a class="anchor" id="secSessionAlgo"></a> Session Algorithm</h1> <p>Main attributes of a <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a>:</p> <ul> <li><code>_netInvalidateds</code>, nets on which topology has changed.</li> <li><code>_autoSegments</code>, that have been moved or createds.</li> <li><code>_autoContacts</code>, that have been created or one of their slave segment has moved.</li> <li><code>_revalidateds</code>, the list of AutoSegments that have just been revalidated (after calling <code><a class="el" href="classKatabatic_1_1Session.html#a4da9e28432c1fdb0c754717487d9cc83">revalidate()</a></code>).</li> </ul> <p>Schematic description of how a <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> works:</p> <ul class="algo1"> <li> <p class="startli">If at least one net has been invalidated, meaning that it's topology has changed, perform <code>_revalidateTopology()</code>. </p> <ul class="algo2"> <li> Update net topology: correct the topology of each contacts, making dogleg when needed. The <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> segment caching is updated at this point. </li> <li> Compute net constraints (on AutoContacts & AutoSegments). </li> <li> Compute net optimal positions (on AutoSegments). </li> <li> Compute the state of the segments regarding to terminals. </li> <li> Canonize sets of aligneds segments. The canonical segment is the one with the lowest <code>id</code>. </li> <li> If the segments has just been created, put it on its optimal axis. </li> </ul> <p>This stage can add itself more invalidated AutoSegments and AutoContacts as it create doglegs.</p> <p class="endli"></p> </li> <li> <p class="startli">Revalidate geometry of AutoContacts. That is, expand or shrink the extremities of the invalidated AutoSegments. Note that AutoSegments are already at on their final axis position.</p> <p class="endli"></p> </li> <li> Revalidate AutoSegments. Just before this stage, they are on the correct axis and their extensions are also correct, so we may update the caching of their characteristics (mostly the extension). </li> </ul> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a037c7ec3b18ec43973f2e6fe3a172000"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool isInDemoMode </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#af3c979bc4832c7e9e9b5a1e749e038ff">KatabaticEngine::isInDemoMode()</a>.</p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCell.html#a8f5167eb40def2cfa878913743079f03">GCell::checkDensity()</a>.</p> </div> </div> <a class="anchor" id="ad41e6fb02bd7bb01c27fb6aae36f0ddc"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool doWarnGCellOverload </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#aef1c27657e9afe69d832ec7c31c546a8">KatabaticEngine::doWarnOnGCellOverload()</a>.</p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCell.html#a8f5167eb40def2cfa878913743079f03">GCell::checkDensity()</a>.</p> </div> </div> <a class="anchor" id="a76f17c3642eaeba85fa0af5ae9d208b4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKatabatic_1_1Session.html">Session</a> * get </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>message</em> = <code>NULL</code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> singleton, if no session is currently open throw an exception carrying <code>message</code>. </p> </div> </div> <a class="anchor" id="a109acfd064f3c1854abb8bb2c9b4ad30"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Technology.html">Technology</a> * getTechnology </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/namespaceHurricane.html">Hurricane</a> shortcut. </p> </div> </div> <a class="anchor" id="a1ec4ff2ad2a5b964c0ff98170a366197"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> * getKatabatic </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga60edeea78b56db072fc26a58a7afbcd4">GCellTopology::doRp_AccessPad()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae9cae408ea16a3f7c77c3d75f0242f19">GCellTopology::doRp_AutoContacts()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aa21b16647c1750ba8b3eb9d99b12f073">AutoSegment::makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1Session.html#a000e098850f6cccff6b289a294149a41">Session::open()</a>.</p> </div> </div> <a class="anchor" id="a4d9fd503149d2fff66eb8ba3955b7a13"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const Configuration * getConfiguration </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a02e6ec81411b250d60dccc0da39964a6">AutoSegment::canMoveUp()</a>.</p> </div> </div> <a class="anchor" id="a266a4079ca235e8fdb622ef4996d324d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">float getSaturateRatio </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1563b5789b3cd5db8dc6fc1cc069dc82">KatabaticEngine::getSaturateRatio()</a>.</p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCell.html#a18ae2575758a4a5e4a42f145309a34de">GCell::isSaturated()</a>.</p> </div> </div> <a class="anchor" id="adfdaa8b3e81de14fce1f99444b35fcda"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t getSaturateRp </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a929aa539d03f19c7edbf6b34d7ec30a3">KatabaticEngine::getSaturateRp()</a>.</p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCell.html#a8785f0ae0bc6de278281c353734b67b7">GCell::rpDesaturate()</a>.</p> </div> </div> <a class="anchor" id="a909ce95ac840ee708f9a49366f0c2690"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getExtensionCap </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#acfbdc94b1e84bd192087df53ead1f06f">AutoHorizontal::checkPositions()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#acfbdc94b1e84bd192087df53ead1f06f">AutoVertical::checkPositions()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9662a77c2ed8553d6a0312c5292060ad">AutoHorizontal::updatePositions()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a9662a77c2ed8553d6a0312c5292060ad">AutoVertical::updatePositions()</a>.</p> </div> </div> <a class="anchor" id="a9a05289b33122f312aa2c88c4b023292"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore" href="../crlcore/classCRL_1_1RoutingGauge.html">RoutingGauge</a> * getRoutingGauge </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa9e85f38a842d1966eb72afccb446676">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa9e85f38a842d1966eb72afccb446676">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a02e6ec81411b250d60dccc0da39964a6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7559a856712400a9325665842e0bcd64">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a7559a856712400a9325665842e0bcd64">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a1c810a1a6860202d94c670999546c4b8">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af76432e1e58e015bde917134757003f9">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a8f5167eb40def2cfa878913743079f03">GCell::checkDensity()</a>, <a class="el" href="classKatabatic_1_1Session.html#ad3ee60a34f480bd3aecd8c7d957ff52e">Session::getContactLayer()</a>, <a class="el" href="classKatabatic_1_1Session.html#a3efd0f0d87be640dc566c1afd821e5e6">Session::getRoutingLayer()</a>, <a class="el" href="classKatabatic_1_1GCell.html#abe5a85792463184f487b42efd80cc25e">GCell::hasFreeTrack()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga3973291866b39c10cea5ca17f7d174fb">anonymous_namespace{LoadGrByNet.cpp}::singleGCell()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a1256c28423a9a260d320e25b3fc1bf57">GCell::stepDesaturate()</a>, <a class="el" href="classKatabatic_1_1GCell.html#aab5b30c49b0453db495337931cf284a9">GCell::stepNetDesaturate()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a9b3455dce10eb98d0496175dd586528c">GCell::updateDensity()</a>, <a class="el" href="classKatabatic_1_1AutoContactVTee.html#af5bf1f5e71204ef84346e4e036175431">AutoContactVTee::updateTopology()</a>, <a class="el" href="classKatabatic_1_1AutoContactTurn.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTurn::updateTopology()</a>, <a class="el" href="classKatabatic_1_1AutoContactHTee.html#af5bf1f5e71204ef84346e4e036175431">AutoContactHTee::updateTopology()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTerminal::updateTopology()</a>.</p> </div> </div> <a class="anchor" id="a3efd0f0d87be640dc566c1afd821e5e6"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getRoutingLayer </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"><em>depth</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore" href="../crlcore/classCRL_1_1RoutingGauge.html#aaa35c92a1bd8fdf022014b684eab9b40">RoutingGauge::getRoutingLayer()</a>.</p> <p>Referenced by <a class="el" href="group__LoadGlobalRouting.html#gae60ed4e27ad89a1e2ff2cd6415ef33f1">GCellTopology::_do_xG_1M1_1M2()</a>, <a class="el" href="group__LoadGlobalRouting.html#gaf9b009520f54099668ac9d12f2c85257">GCellTopology::_do_xG_xM1_xM3()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga60edeea78b56db072fc26a58a7afbcd4">GCellTopology::doRp_AccessPad()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>, and <a class="el" href="classKatabatic_1_1GCell.html#a8785f0ae0bc6de278281c353734b67b7">GCell::rpDesaturate()</a>.</p> </div> </div> <a class="anchor" id="ad3ee60a34f480bd3aecd8c7d957ff52e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getContactLayer </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"><em>depth</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore" href="../crlcore/classCRL_1_1RoutingGauge.html#ab7d83a8694be580a6a4b9aa60adcb0b0">RoutingGauge::getContactLayer()</a>, and <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>.</p> <p>Referenced by <a class="el" href="group__LoadGlobalRouting.html#ga2519ef984b3d19f123827a9b12651672">GCellTopology::_do_1G_1M3()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga97942453a1bc5b01106aa380271fd7fc">GCellTopology::_do_1G_xM1()</a>, <a class="el" href="group__LoadGlobalRouting.html#gaaa6d4ccd2eadfb6bc3e2cc98cfaf2cca">GCellTopology::_do_xG()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae60ed4e27ad89a1e2ff2cd6415ef33f1">GCellTopology::_do_xG_1M1_1M2()</a>, <a class="el" href="group__LoadGlobalRouting.html#gabe00ab10a0dab8a3d2de0709e61e4e7d">GCellTopology::_do_xG_1Pad()</a>, <a class="el" href="group__LoadGlobalRouting.html#gaf9b009520f54099668ac9d12f2c85257">GCellTopology::_do_xG_xM1_xM3()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga532d1c6b530e0375078ea2d6ea3c6024">GCellTopology::_do_xG_xM2()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga007efc725aae31782204a44949765cb4">GCellTopology::_do_xG_xM3()</a>, <a class="el" href="group__LoadGlobalRouting.html#gada6d3c694b8d741b6504b7c3da166357">GCellTopology::doRp_Access()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga60edeea78b56db072fc26a58a7afbcd4">GCellTopology::doRp_AccessPad()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae9cae408ea16a3f7c77c3d75f0242f19">GCellTopology::doRp_AutoContacts()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga3291d84592215974fe4052c00304bdb1">GCellTopology::doRp_StairCaseH()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga6361fb0e90f35cd59063a1ee971ef2a9">GCellTopology::doRp_StairCaseV()</a>, and <a class="el" href="group__LoadGlobalRouting.html#ga3973291866b39c10cea5ca17f7d174fb">anonymous_namespace{LoadGrByNet.cpp}::singleGCell()</a>.</p> </div> </div> <a class="anchor" id="ac9c144a8faf97714069824933970923c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t getSegmentStackSize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The number of <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> in the invalidated stack. </p> </div> </div> <a class="anchor" id="a0d0c0159030a32b78ab4ad2b58871bce"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t getContactStackSize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The number of <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> in the invalidated stack. </p> </div> </div> <a class="anchor" id="a6060b7e972f3c0d10cfa158b5ed174e6"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const vector< <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & getInvalidateds </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The stack (vector) of invalidateds AutoSegments. </p> </div> </div> <a class="anchor" id="af5675d50557db83d11b7d2151de5f34c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const vector< <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & getRevalidateds </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The stack (vector) of AutoSegments that have been revalidateds. </p> </div> </div> <a class="anchor" id="a84211b77fe7fb8b49a93d7f298a5de90"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const vector< <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * > & getDoglegs </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The vector of AutoSegments part of a newly created dogleg. The dogleg creation functions in <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> and <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a> put a triplet (for example in horizontal direction <code></code>(h1,v1,h2) ) for each dogleg composed of:</p> <ul> <li><b>h1</b> the segment <em>before</em> the dogleg (which is also the original one).</li> <li><b>v1</b> the segment <b>perpandicular</b> (new).</li> <li><b>h2</b> the segment <b>after</b> (new). </li> </ul> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>.</p> </div> </div> <a class="anchor" id="a6c3be93d98029b06138f633342d04157"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const set< <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * > & getNetsModificateds </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The set of Nets that needs either a topological update or a new canonization. </p> </div> </div> <a class="anchor" id="a000e098850f6cccff6b289a294149a41"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKatabatic_1_1Session.html">Session</a> * open </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> * </td> <td class="paramname"><em>ktbt</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Opens a new session or returns the already opened one, if any. </p> <p>References <a class="el" href="classKatabatic_1_1Session.html#a1ec4ff2ad2a5b964c0ff98170a366197">Session::getKatabatic()</a>.</p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCellGrid.html#a032d6eb23f92e3a41a020d18c6bbc02d">GCellGrid::updateContacts()</a>.</p> </div> </div> <a class="anchor" id="a5ae591df94fc66ccb85cbb6565368bca"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void close </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Close the <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a>, triggering the revalidation of the AutoSegemnts and AutoContacts. If no <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> is opened, throws an execption. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1GCellGrid.html#a032d6eb23f92e3a41a020d18c6bbc02d">GCellGrid::updateContacts()</a>.</p> </div> </div> <a class="anchor" id="af9919aefa1db2478b3d1813c1872d175"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void setKatabaticFlags </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> shortcut. </p> <p>References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#aeb14f94914af58657a0dc2f50ec98df5">KatabaticEngine::setFlags()</a>.</p> </div> </div> <a class="anchor" id="aed01e83f7d8dc7acd85156256a9e776c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void dogleg </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * </td> <td class="paramname"><em>autoSegment</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Adds an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> to the dogleg vector. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p> </div> </div> <a class="anchor" id="a69fc41ca90fae86766ae9d528394868f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void revalidateTopology </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Revalidate Net that have been invalidateds and re-canonize them. </p> </div> </div> <a class="anchor" id="a16f4761496e07b9e836642d1effa1993"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void setInvalidateMask </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Tells what kind of revalidation must be performed. </p> </div> </div> <a class="anchor" id="ae310a7c2c301b7e5f90fba5d34cc5be9"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void invalidate </td> <td>(</td> <td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * </td> <td class="paramname"><em>net</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Schedule <code>net</code> for a full revalidation, topological correction and canonization. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6a98d2e5839b880893703ad45db4e4c4">AutoSegment::_invalidate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>.</p> </div> </div> <a class="anchor" id="a1f8da0ae3a9d714c1dfae69904acec5f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void invalidate </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * </td> <td class="paramname"><em>contact</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Schedule <code>contact</code> for revalidation. </p> </div> </div> <a class="anchor" id="a7968875ccb5abb2c6f6d5dec92027550"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void invalidate </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * </td> <td class="paramname"><em>segment</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Schedule <code>segment</code> for revalidation. </p> </div> </div> <a class="anchor" id="a4da9e28432c1fdb0c754717487d9cc83"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t revalidate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Perform the revalidation. Returns the sum of AutoContacts and AutoSegemnts that have been revalidated. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1b7d8ed09a198f7afd6e3ac911f6eb37">KatabaticEngine::createDetailedGrid()</a>.</p> </div> </div> <a class="anchor" id="a8fad7191a9fc248f84e71cf1c9d0c6be"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void link </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * </td> <td class="paramname"><em>ac</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Adds <code>ac</code> in the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> lookup table (allow to retrieve an <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> by it's base Contact). </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>.</p> </div> </div> <a class="anchor" id="ab12ddab837097ec298ede4f66302b677"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void link </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * </td> <td class="paramname"><em>as</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Adds <code>as</code> in the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> lookup table (allow to retrieve an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> by it's base Segment). </p> </div> </div> <a class="anchor" id="a10c42636ea5786d898d530905ccb30d6"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void unlink </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * </td> <td class="paramname"><em>ac</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Removes <code>ac</code> from the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> lookup table. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c13d9795eafd477994961f8a0d962d0">AutoSegment::_preDestroy()</a>.</p> </div> </div> <a class="anchor" id="ab815a7824e0253142af6b8a204c361ec"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void unlink </td> <td>(</td> <td class="paramtype"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * </td> <td class="paramname"><em>as</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Removes <code>as</code> from the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> lookup table. </p> </div> </div> <a class="anchor" id="acc20c1f675cc59f9a0068aba727eca47"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * lookup </td> <td>(</td> <td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> * </td> <td class="paramname"><em>contact</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Lookup the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> associated with <code>contact</code>. <code>NULL</code> if not found. </p> <p>Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment::AutoSegment()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a0fb331311568ccb14d2005065575dc28">GCell::checkEdgeSaturation()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afb5b4d8bddc75cd604c7a68aa5943c12">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a5a35baf84e1e3531c38a6132fb8118fb">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ac2d254eb530ff299dad804100198cc24">AutoSegment::getOppositeAnchor()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a5a63602ccc44f51012f10d138e1480c4">AutoSegment::getPerpandicularsBound()</a>.</p> </div> </div> <a class="anchor" id="a6e465f0a592fee7e1e45b6c825b8a5da"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * lookup </td> <td>(</td> <td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> * </td> <td class="paramname"><em>segment</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Lookup the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> associated with <code>segment</code>. <code>NULL</code> if not found. </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="Session_8h_source.html">Session.h</a></li> <li>Session.cpp</li> <li>Session.dox</li> </ul> </div><!-- contents --> <br> <hr> <table class="footer1"> <tr> <td class="LFooter"><small>Generated by doxygen 1.8.5 on Sat Aug 18 2018</small></td> <td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td> </tr> </table> <table class="footer2"> <tr> <td class="LFooter">Katabatic - Routing Toolbox</td> <td class="RFooter"><small>Copyright © 2008-2016 UPMC. All rights reserved</small></td> </tr> </table> </body> </html>