2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1Session} { } \section { Session Class Reference}
2018-06-06 11:42:26 -05:00
\label { classKatabatic_ 1_ 1Session} \index { Session@{ Session} }
2018-10-18 11:10:01 -05:00
Modification \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } for \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } .
2018-06-06 11:42:26 -05:00
\subsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static bool \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a037c7ec3b18ec43973f2e6fe3a172000} { is\+ In\+ Demo\+ Mode} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static bool \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ad41e6fb02bd7bb01c27fb6aae36f0ddc} { do\+ Warn\+ G\+ Cell\+ Overload} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a76f17c3642eaeba85fa0af5ae9d208b4} { get} } (const char $ \ast $ message=N\+ U\+ LL)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \textbf { Technology} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a109acfd064f3c1854abb8bb2c9b4ad30} { get\+ Technology} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1KatabaticEngine} { Katabatic\+ Engine} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a1ec4ff2ad2a5b964c0ff98170a366197} { get\+ Katabatic} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const Configuration $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a4d9fd503149d2fff66eb8ba3955b7a13} { get\+ Configuration} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static float \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a266a4079ca235e8fdb622ef4996d324d} { get\+ Saturate\+ Ratio} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ adfdaa8b3e81de14fce1f99444b35fcda} { get\+ Saturate\+ Rp} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a909ce95ac840ee708f9a49366f0c2690} { get\+ Extension\+ Cap} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \textbf { Routing\+ Gauge} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a9a05289b33122f312aa2c88c4b023292} { get\+ Routing\+ Gauge} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const \textbf { Layer} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a3efd0f0d87be640dc566c1afd821e5e6} { get\+ Routing\+ Layer} } (size\+ \_ \+ t)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const \textbf { Layer} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ad3ee60a34f480bd3aecd8c7d957ff52e} { get\+ Contact\+ Layer} } (size\+ \_ \+ t)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ac9c144a8faf97714069824933970923c} { get\+ Segment\+ Stack\+ Size} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a0d0c0159030a32b78ab4ad2b58871bce} { get\+ Contact\+ Stack\+ Size} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a6060b7e972f3c0d10cfa158b5ed174e6} { get\+ Invalidateds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ af5675d50557db83d11b7d2151de5f34c} { get\+ Revalidateds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a84211b77fe7fb8b49a93d7f298a5de90} { get\+ Doglegs} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const set$ < $ \textbf { Net} $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a6c3be93d98029b06138f633342d04157} { get\+ Nets\+ Modificateds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a000e098850f6cccff6b289a294149a41} { open} } (\mbox { \hyperlink { classKatabatic_ 1_ 1KatabaticEngine} { Katabatic\+ Engine} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a5ae591df94fc66ccb85cbb6565368bca} { close} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ af9919aefa1db2478b3d1813c1872d175} { set\+ Katabatic\+ Flags} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ aed01e83f7d8dc7acd85156256a9e776c} { dogleg} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a69fc41ca90fae86766ae9d528394868f} { revalidate\+ Topology} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a16f4761496e07b9e836642d1effa1993} { set\+ Invalidate\+ Mask} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ae310a7c2c301b7e5f90fba5d34cc5be9} { invalidate} } (\textbf { Net} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a1f8da0ae3a9d714c1dfae69904acec5f} { invalidate} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a7968875ccb5abb2c6f6d5dec92027550} { invalidate} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a4da9e28432c1fdb0c754717487d9cc83} { revalidate} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a8fad7191a9fc248f84e71cf1c9d0c6be} { link} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ab12ddab837097ec298ede4f66302b677} { link} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a10c42636ea5786d898d530905ccb30d6} { unlink} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ ab815a7824e0253142af6b8a204c361ec} { unlink} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ acc20c1f675cc59f9a0068aba727eca47} { lookup} } (\textbf { Contact} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a6e465f0a592fee7e1e45b6c825b8a5da} { lookup} } (\textbf { Segment} $ \ast $ )
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection { Detailed Description}
2018-10-18 11:10:01 -05:00
Modification \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } for \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
To perform modifications, the \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } data structure uses a session mechanism built on top of the \textbf { Hurricane\+ ::\+ Update\+ Session} one. Sessions obeys very simples rules\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item Only one \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } can be opened at a time with \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a000e098850f6cccff6b289a294149a41} { Session\+ ::open()} } .
\item Subsequent calls to \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a000e098850f6cccff6b289a294149a41} { Session\+ ::open()} } returns the currently opened session until \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a5ae591df94fc66ccb85cbb6565368bca} { Session\+ ::close()} } is called.
\item Revalidation can take place whithout closing the \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } by calling \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a4da9e28432c1fdb0c754717487d9cc83} { Session\+ ::revalidate()} } .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
The task of a \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } is to keep track of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } that have been modificateds (i.\+ e. invalidated) and, to restore connexity and/or topology when closed.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Two kinds of revalidation could be performed\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \bfseries Geometrical} \+ : only positions of Auto\+ Contacts and Auto\+ Segments extensions are recomputed.
\item { \bfseries Topological} \+ : a whole net have been invalidated because of a dogleg creation or a move up/move down of a segment.
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \bfseries Dogleg} \+ : needs to insert the newly created Auto\+ Segments and Auto\+ Contacts.
\item { \bfseries Move up/\+ Move down} \+ : may needs to create additional dogleg to restore connexity (gaps), and then insert them like above.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize} After a topological mofication has been done, the net needs to be re-\/ canonized then the geometrical step takes place.
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
The kind of revalidation needed is automatically detected by the \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
In addition to it\textquotesingle { } s main purpose, \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } also provides cached access to frequently needed variables either from Hurricane or \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } Configuration and access to the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } \& \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } L\+ U\+ Ts of \mbox { \hyperlink { classKatabatic_ 1_ 1KatabaticEngine} { Katabatic\+ Engine} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
From a software point of view, \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } is a singleton object.\hypertarget { classKatabatic_ 1_ 1Session_ secSessionAlgo} { } \subsection { Session Algorithm} \label { classKatabatic_ 1_ 1Session_ secSessionAlgo}
Main attributes of a \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } \+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \ttfamily \+ \_ \+ net\+ Invalidateds} , nets on which topology has changed.
\item { \ttfamily \+ \_ \+ auto\+ Segments} , that have been moved or createds.
\item { \ttfamily \+ \_ \+ auto\+ Contacts} , that have been created or one of their slave segment has moved.
\item { \ttfamily \+ \_ \+ revalidateds} , the list of Auto\+ Segments that have just been revalidated (after calling { \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a4da9e28432c1fdb0c754717487d9cc83} { revalidate()} } } ).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
Schematic description of how a \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } works\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item If at least one net has been invalidated, meaning that it\textquotesingle { } s topology has changed, perform { \ttfamily \+ \_ \+ revalidate\+ Topology()} .
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item Update net topology\+ : correct the topology of each contacts, making dogleg when needed. The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } segment caching is updated at this point.
\item Compute net constraints (on Auto\+ Contacts \& Auto\+ Segments).
\item Compute net optimal positions (on Auto\+ Segments).
2018-06-06 11:42:26 -05:00
\item Compute the state of the segments regarding to terminals.
\item Canonize sets of aligneds segments. The canonical segment is the one with the lowest { \ttfamily id} .
\item If the segments has just been created, put it on its optimal axis.
2018-10-18 11:10:01 -05:00
\end { DoxyItemize} This stage can add itself more invalidated Auto\+ Segments and Auto\+ Contacts as it create doglegs.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\item Revalidate geometry of Auto\+ Contacts. That is, expand or shrink the extremities of the invalidated Auto\+ Segments. Note that Auto\+ Segments are already at on their final axis position.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\item Revalidate Auto\+ Segments. 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).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\subsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a037c7ec3b18ec43973f2e6fe3a172000} \label { classKatabatic_ 1_ 1Session_ a037c7ec3b18ec43973f2e6fe3a172000} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !is\+ In\+ Demo\+ Mode@{ is\+ In\+ Demo\+ Mode} }
\index { is\+ In\+ Demo\+ Mode@{ is\+ In\+ Demo\+ Mode} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { is\+ In\+ Demo\+ Mode()} { isInDemoMode()} }
{ \footnotesize \ttfamily bool is\+ In\+ Demo\+ Mode (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ Engine\+ ::is\+ In\+ Demo\+ Mode().
Referenced by G\+ Cell\+ ::check\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ad41e6fb02bd7bb01c27fb6aae36f0ddc} \label { classKatabatic_ 1_ 1Session_ ad41e6fb02bd7bb01c27fb6aae36f0ddc} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !do\+ Warn\+ G\+ Cell\+ Overload@{ do\+ Warn\+ G\+ Cell\+ Overload} }
\index { do\+ Warn\+ G\+ Cell\+ Overload@{ do\+ Warn\+ G\+ Cell\+ Overload} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { do\+ Warn\+ G\+ Cell\+ Overload()} { doWarnGCellOverload()} }
{ \footnotesize \ttfamily bool do\+ Warn\+ G\+ Cell\+ Overload (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Katabatic\+ Engine\+ ::do\+ Warn\+ On\+ G\+ Cell\+ Overload().
Referenced by G\+ Cell\+ ::check\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a76f17c3642eaeba85fa0af5ae9d208b4} \label { classKatabatic_ 1_ 1Session_ a76f17c3642eaeba85fa0af5ae9d208b4} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get@{ get} }
\index { get@{ get} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get()} { get()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } $ \ast $ get (\begin { DoxyParamCaption} \item [{const char $\ast$}] { message = { \ttfamily NULL} } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Return the \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } singleton, if no session is currently open throw an exception carrying { \ttfamily message} . \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a109acfd064f3c1854abb8bb2c9b4ad30} \label { classKatabatic_ 1_ 1Session_ a109acfd064f3c1854abb8bb2c9b4ad30} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Technology@{ get\+ Technology} }
\index { get\+ Technology@{ get\+ Technology} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Technology()} { getTechnology()} }
{ \footnotesize \ttfamily \textbf { Technology} $ \ast $ get\+ Technology (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Hurricane shortcut. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a1ec4ff2ad2a5b964c0ff98170a366197} \label { classKatabatic_ 1_ 1Session_ a1ec4ff2ad2a5b964c0ff98170a366197} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Katabatic@{ get\+ Katabatic} }
\index { get\+ Katabatic@{ get\+ Katabatic} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Katabatic()} { getKatabatic()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1KatabaticEngine} { Katabatic\+ Engine} } $ \ast $ get\+ Katabatic (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
Referenced by Auto\+ Segment\+ ::create(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access\+ Pad(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Auto\+ Contacts(), Auto\+ Segment\+ ::make\+ Dogleg(), and Session\+ ::open().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a4d9fd503149d2fff66eb8ba3955b7a13} \label { classKatabatic_ 1_ 1Session_ a4d9fd503149d2fff66eb8ba3955b7a13} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Configuration@{ get\+ Configuration} }
\index { get\+ Configuration@{ get\+ Configuration} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Configuration()} { getConfiguration()} }
{ \footnotesize \ttfamily const Configuration $ \ast $ get\+ Configuration (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Segment\+ ::can\+ Move\+ Up().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a266a4079ca235e8fdb622ef4996d324d} \label { classKatabatic_ 1_ 1Session_ a266a4079ca235e8fdb622ef4996d324d} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Saturate\+ Ratio@{ get\+ Saturate\+ Ratio} }
\index { get\+ Saturate\+ Ratio@{ get\+ Saturate\+ Ratio} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Saturate\+ Ratio()} { getSaturateRatio()} }
{ \footnotesize \ttfamily float get\+ Saturate\+ Ratio (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Katabatic\+ Engine\+ ::get\+ Saturate\+ Ratio().
Referenced by G\+ Cell\+ ::is\+ Saturated().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ adfdaa8b3e81de14fce1f99444b35fcda} \label { classKatabatic_ 1_ 1Session_ adfdaa8b3e81de14fce1f99444b35fcda} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Saturate\+ Rp@{ get\+ Saturate\+ Rp} }
\index { get\+ Saturate\+ Rp@{ get\+ Saturate\+ Rp} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Saturate\+ Rp()} { getSaturateRp()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Saturate\+ Rp (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Katabatic\+ Engine\+ ::get\+ Saturate\+ Rp().
Referenced by G\+ Cell\+ ::rp\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a909ce95ac840ee708f9a49366f0c2690} \label { classKatabatic_ 1_ 1Session_ a909ce95ac840ee708f9a49366f0c2690} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Extension\+ Cap@{ get\+ Extension\+ Cap} }
\index { get\+ Extension\+ Cap@{ get\+ Extension\+ Cap} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Extension\+ Cap()} { getExtensionCap()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Extension\+ Cap (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
Referenced by Auto\+ Horizontal\+ ::check\+ Positions(), Auto\+ Vertical\+ ::check\+ Positions(), Auto\+ Horizontal\+ ::update\+ Positions(), and Auto\+ Vertical\+ ::update\+ Positions().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a9a05289b33122f312aa2c88c4b023292} \label { classKatabatic_ 1_ 1Session_ a9a05289b33122f312aa2c88c4b023292} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Routing\+ Gauge@{ get\+ Routing\+ Gauge} }
\index { get\+ Routing\+ Gauge@{ get\+ Routing\+ Gauge} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Routing\+ Gauge()} { getRoutingGauge()} }
{ \footnotesize \ttfamily \textbf { Routing\+ Gauge} $ \ast $ get\+ Routing\+ Gauge (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), G\+ Cell\+ ::check\+ Density(), Session\+ ::get\+ Contact\+ Layer(), Session\+ ::get\+ Routing\+ Layer(), G\+ Cell\+ ::has\+ Free\+ Track(), Auto\+ Segment\+ ::make\+ Dogleg(), anonymous\+ \_ \+ namespace\{ \+ Load\+ Gr\+ By\+ Net.\+ cpp\} \+ ::single\+ G\+ Cell(), G\+ Cell\+ ::step\+ Desaturate(), G\+ Cell\+ ::step\+ Net\+ Desaturate(), G\+ Cell\+ ::update\+ Density(), Auto\+ Contact\+ V\+ Tee\+ ::update\+ Topology(), Auto\+ Contact\+ Turn\+ ::update\+ Topology(), Auto\+ Contact\+ H\+ Tee\+ ::update\+ Topology(), and Auto\+ Contact\+ Terminal\+ ::update\+ Topology().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a3efd0f0d87be640dc566c1afd821e5e6} \label { classKatabatic_ 1_ 1Session_ a3efd0f0d87be640dc566c1afd821e5e6} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Routing\+ Layer@{ get\+ Routing\+ Layer} }
\index { get\+ Routing\+ Layer@{ get\+ Routing\+ Layer} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Routing\+ Layer()} { getRoutingLayer()} }
{ \footnotesize \ttfamily const \textbf { Layer} $ \ast $ get\+ Routing\+ Layer (\begin { DoxyParamCaption} \item [{size\+\_\+t}] { depth } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Session\+ ::get\+ Routing\+ Gauge(), and Routing\+ Gauge\+ ::get\+ Routing\+ Layer().
Referenced by G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ 1\+ M1\+ \_ \+ 1\+ M2(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M1\+ \_ \+ x\+ M3(), Auto\+ Segment\+ ::create(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access\+ Pad(), Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer(), and G\+ Cell\+ ::rp\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ad3ee60a34f480bd3aecd8c7d957ff52e} \label { classKatabatic_ 1_ 1Session_ ad3ee60a34f480bd3aecd8c7d957ff52e} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Contact\+ Layer@{ get\+ Contact\+ Layer} }
\index { get\+ Contact\+ Layer@{ get\+ Contact\+ Layer} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Contact\+ Layer()} { getContactLayer()} }
{ \footnotesize \ttfamily const \textbf { Layer} $ \ast $ get\+ Contact\+ Layer (\begin { DoxyParamCaption} \item [{size\+\_\+t}] { depth } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Routing\+ Gauge\+ ::get\+ Contact\+ Layer(), and Session\+ ::get\+ Routing\+ Gauge().
Referenced by G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ 1\+ G\+ \_ \+ 1\+ M3(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ 1\+ G\+ \_ \+ x\+ M1(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ 1\+ M1\+ \_ \+ 1\+ M2(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ 1\+ Pad(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M1\+ \_ \+ x\+ M3(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M2(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M3(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access\+ Pad(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Auto\+ Contacts(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Stair\+ Case\+ H(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Stair\+ Case\+ V(), and anonymous\+ \_ \+ namespace\{ \+ Load\+ Gr\+ By\+ Net.\+ cpp\} \+ ::single\+ G\+ Cell().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ac9c144a8faf97714069824933970923c} \label { classKatabatic_ 1_ 1Session_ ac9c144a8faf97714069824933970923c} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Segment\+ Stack\+ Size@{ get\+ Segment\+ Stack\+ Size} }
\index { get\+ Segment\+ Stack\+ Size@{ get\+ Segment\+ Stack\+ Size} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Segment\+ Stack\+ Size()} { getSegmentStackSize()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Segment\+ Stack\+ Size (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The number of \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in the invalidated stack. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a0d0c0159030a32b78ab4ad2b58871bce} \label { classKatabatic_ 1_ 1Session_ a0d0c0159030a32b78ab4ad2b58871bce} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Contact\+ Stack\+ Size@{ get\+ Contact\+ Stack\+ Size} }
\index { get\+ Contact\+ Stack\+ Size@{ get\+ Contact\+ Stack\+ Size} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Contact\+ Stack\+ Size()} { getContactStackSize()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Contact\+ Stack\+ Size (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The number of \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in the invalidated stack. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a6060b7e972f3c0d10cfa158b5ed174e6} \label { classKatabatic_ 1_ 1Session_ a6060b7e972f3c0d10cfa158b5ed174e6} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Invalidateds@{ get\+ Invalidateds} }
\index { get\+ Invalidateds@{ get\+ Invalidateds} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Invalidateds()} { getInvalidateds()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& get\+ Invalidateds (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The stack (vector) of invalidateds Auto\+ Segments. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ af5675d50557db83d11b7d2151de5f34c} \label { classKatabatic_ 1_ 1Session_ af5675d50557db83d11b7d2151de5f34c} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Revalidateds@{ get\+ Revalidateds} }
\index { get\+ Revalidateds@{ get\+ Revalidateds} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Revalidateds()} { getRevalidateds()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& get\+ Revalidateds (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The stack (vector) of Auto\+ Segments that have been revalidateds. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a84211b77fe7fb8b49a93d7f298a5de90} \label { classKatabatic_ 1_ 1Session_ a84211b77fe7fb8b49a93d7f298a5de90} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Doglegs@{ get\+ Doglegs} }
\index { get\+ Doglegs@{ get\+ Doglegs} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Doglegs()} { getDoglegs()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& get\+ Doglegs (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The vector of Auto\+ Segments part of a newly created dogleg. The dogleg creation functions in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } put a triplet (for example in horizontal direction { \ttfamily } (h1,v1,h2) ) for each dogleg composed of\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item { \bfseries h1} the segment { \itshape before} the dogleg (which is also the original one).
\item { \bfseries v1} the segment { \bfseries perpandicular} (new).
\item { \bfseries h2} the segment { \bfseries after} (new).
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a6c3be93d98029b06138f633342d04157} \label { classKatabatic_ 1_ 1Session_ a6c3be93d98029b06138f633342d04157} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !get\+ Nets\+ Modificateds@{ get\+ Nets\+ Modificateds} }
\index { get\+ Nets\+ Modificateds@{ get\+ Nets\+ Modificateds} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { get\+ Nets\+ Modificateds()} { getNetsModificateds()} }
{ \footnotesize \ttfamily const set$ < $ \textbf { Net} $ \ast $ $ > $ \& get\+ Nets\+ Modificateds (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
{ \bfseries Returns\+ :} The set of Nets that needs either a topological update or a new canonization. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a000e098850f6cccff6b289a294149a41} \label { classKatabatic_ 1_ 1Session_ a000e098850f6cccff6b289a294149a41} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !open@{ open} }
\index { open@{ open} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { open()} { open()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } $ \ast $ open (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine}} $\ast$}] { ktbt } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
Opens a new session or returns the already opened one, if any.
2018-10-18 11:10:01 -05:00
References Session\+ ::get\+ Katabatic().
Referenced by G\+ Cell\+ Grid\+ ::update\+ Contacts().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a5ae591df94fc66ccb85cbb6565368bca} \label { classKatabatic_ 1_ 1Session_ a5ae591df94fc66ccb85cbb6565368bca} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !close@{ close} }
\index { close@{ close} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { close()} { close()} }
{ \footnotesize \ttfamily void close (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Close the \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } , triggering the revalidation of the Auto\+ Segemnts and Auto\+ Contacts. If no \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } is opened, throws an execption.
Referenced by G\+ Cell\+ Grid\+ ::update\+ Contacts().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ af9919aefa1db2478b3d1813c1872d175} \label { classKatabatic_ 1_ 1Session_ af9919aefa1db2478b3d1813c1872d175} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !set\+ Katabatic\+ Flags@{ set\+ Katabatic\+ Flags} }
\index { set\+ Katabatic\+ Flags@{ set\+ Katabatic\+ Flags} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { set\+ Katabatic\+ Flags()} { setKatabaticFlags()} }
{ \footnotesize \ttfamily void set\+ Katabatic\+ Flags (\begin { DoxyParamCaption} \item [{unsigned int}] { flags } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } shortcut.
References Katabatic\+ Engine\+ ::set\+ Flags().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ aed01e83f7d8dc7acd85156256a9e776c} \label { classKatabatic_ 1_ 1Session_ aed01e83f7d8dc7acd85156256a9e776c} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !dogleg@{ dogleg} }
\index { dogleg@{ dogleg} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { dogleg()} { dogleg()} }
{ \footnotesize \ttfamily void dogleg (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { auto\+ Segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Adds an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } to the dogleg vector.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a69fc41ca90fae86766ae9d528394868f} \label { classKatabatic_ 1_ 1Session_ a69fc41ca90fae86766ae9d528394868f} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !revalidate\+ Topology@{ revalidate\+ Topology} }
\index { revalidate\+ Topology@{ revalidate\+ Topology} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { revalidate\+ Topology()} { revalidateTopology()} }
{ \footnotesize \ttfamily void revalidate\+ Topology (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Revalidate Net that have been invalidateds and re-\/ canonize them. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a16f4761496e07b9e836642d1effa1993} \label { classKatabatic_ 1_ 1Session_ a16f4761496e07b9e836642d1effa1993} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !set\+ Invalidate\+ Mask@{ set\+ Invalidate\+ Mask} }
\index { set\+ Invalidate\+ Mask@{ set\+ Invalidate\+ Mask} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { set\+ Invalidate\+ Mask()} { setInvalidateMask()} }
{ \footnotesize \ttfamily void set\+ Invalidate\+ Mask (\begin { DoxyParamCaption} \item [{unsigned int}] { flags } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Tells what kind of revalidation must be performed. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ae310a7c2c301b7e5f90fba5d34cc5be9} \label { classKatabatic_ 1_ 1Session_ ae310a7c2c301b7e5f90fba5d34cc5be9} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !invalidate@{ invalidate} }
\index { invalidate@{ invalidate} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { invalidate()} { invalidate()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/3]} }
{ \footnotesize \ttfamily void invalidate (\begin { DoxyParamCaption} \item [{\textbf{ Net} $\ast$}] { net } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
Schedule { \ttfamily net} for a full revalidation, topological correction and canonization.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ \_ \+ invalidate(), and Auto\+ Segment\+ ::\+ \_ \+ post\+ Create().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a1f8da0ae3a9d714c1dfae69904acec5f} \label { classKatabatic_ 1_ 1Session_ a1f8da0ae3a9d714c1dfae69904acec5f} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !invalidate@{ invalidate} }
\index { invalidate@{ invalidate} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { invalidate()} { invalidate()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/3]} }
{ \footnotesize \ttfamily void invalidate (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { contact } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Schedule { \ttfamily contact} for revalidation. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a7968875ccb5abb2c6f6d5dec92027550} \label { classKatabatic_ 1_ 1Session_ a7968875ccb5abb2c6f6d5dec92027550} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !invalidate@{ invalidate} }
\index { invalidate@{ invalidate} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { invalidate()} { invalidate()} \hspace { 0.1cm} { \footnotesize \ttfamily [3/3]} }
{ \footnotesize \ttfamily void invalidate (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Schedule { \ttfamily segment} for revalidation. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a4da9e28432c1fdb0c754717487d9cc83} \label { classKatabatic_ 1_ 1Session_ a4da9e28432c1fdb0c754717487d9cc83} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !revalidate@{ revalidate} }
\index { revalidate@{ revalidate} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { revalidate()} { revalidate()} }
{ \footnotesize \ttfamily size\+ \_ \+ t revalidate (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [static]} }
Perform the revalidation. Returns the sum of Auto\+ Contacts and Auto\+ Segemnts that have been revalidated.
Referenced by Katabatic\+ Engine\+ ::create\+ Detailed\+ Grid().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a8fad7191a9fc248f84e71cf1c9d0c6be} \label { classKatabatic_ 1_ 1Session_ a8fad7191a9fc248f84e71cf1c9d0c6be} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !link@{ link} }
\index { link@{ link} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { link()} { link()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily void link (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { ac } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Adds { \ttfamily ac} in the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } lookup table (allow to retrieve an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } by it\textquotesingle { } s base Contact).
Referenced by Auto\+ Segment\+ ::\+ \_ \+ post\+ Create().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ab12ddab837097ec298ede4f66302b677} \label { classKatabatic_ 1_ 1Session_ ab12ddab837097ec298ede4f66302b677} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !link@{ link} }
\index { link@{ link} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { link()} { link()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily void link (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { as } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Adds { \ttfamily as} in the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } lookup table (allow to retrieve an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } by it\textquotesingle { } s base Segment). \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a10c42636ea5786d898d530905ccb30d6} \label { classKatabatic_ 1_ 1Session_ a10c42636ea5786d898d530905ccb30d6} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !unlink@{ unlink} }
\index { unlink@{ unlink} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { unlink()} { unlink()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily void unlink (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { ac } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Removes { \ttfamily ac} from the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } lookup table.
Referenced by Auto\+ Segment\+ ::\+ \_ \+ pre\+ Destroy().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ ab815a7824e0253142af6b8a204c361ec} \label { classKatabatic_ 1_ 1Session_ ab815a7824e0253142af6b8a204c361ec} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !unlink@{ unlink} }
\index { unlink@{ unlink} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { unlink()} { unlink()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily void unlink (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { as } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Removes { \ttfamily as} from the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } lookup table. \mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ acc20c1f675cc59f9a0068aba727eca47} \label { classKatabatic_ 1_ 1Session_ acc20c1f675cc59f9a0068aba727eca47} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !lookup@{ lookup} }
\index { lookup@{ lookup} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { lookup()} { lookup()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ lookup (\begin { DoxyParamCaption} \item [{\textbf{ Contact} $\ast$}] { contact } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Lookup the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } associated with { \ttfamily contact} . { \ttfamily N\+ U\+ LL} if not found.
Referenced by Auto\+ Segment\+ ::\+ Auto\+ Segment(), G\+ Cell\+ ::check\+ Edge\+ Saturation(), Auto\+ Segment\+ ::create(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ Opposite\+ Anchor(), and Auto\+ Segment\+ ::get\+ Perpandiculars\+ Bound().
\mbox { \Hypertarget { classKatabatic_ 1_ 1Session_ a6e465f0a592fee7e1e45b6c825b8a5da} \label { classKatabatic_ 1_ 1Session_ a6e465f0a592fee7e1e45b6c825b8a5da} }
\index { Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} !lookup@{ lookup} }
\index { lookup@{ lookup} !Katabatic\+ ::\+ Session@{ Katabatic\+ ::\+ Session} }
\subsubsection { \texorpdfstring { lookup()} { lookup()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ lookup (\begin { DoxyParamCaption} \item [{\textbf{ Segment} $\ast$}] { segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
Lookup the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } associated with { \ttfamily segment} . { \ttfamily N\+ U\+ LL} if not found.
The documentation for this class was generated from the following files\+ :\begin { DoxyCompactItemize}
\item
Session.\+ h\item
Session.\+ cpp\item
Session.\+ dox\end { DoxyCompactItemize}