coriolis/katabatic/doc/latex/classKatabatic_1_1Session.tex

438 lines
37 KiB
TeX
Raw Normal View History

\hypertarget{classKatabatic_1_1Session}{}\section{Session Class Reference}
\label{classKatabatic_1_1Session}\index{Session@{Session}}
Modification \hyperlink{classKatabatic_1_1Session}{Session} for \hyperlink{namespaceKatabatic}{Katabatic}.
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
static bool \hyperlink{classKatabatic_1_1Session_a037c7ec3b18ec43973f2e6fe3a172000}{is\+In\+Demo\+Mode} ()
\item
static bool \hyperlink{classKatabatic_1_1Session_ad41e6fb02bd7bb01c27fb6aae36f0ddc}{do\+Warn\+G\+Cell\+Overload} ()
\item
static \hyperlink{classKatabatic_1_1Session}{Session} $\ast$ \hyperlink{classKatabatic_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4}{get} (const char $\ast$message=N\+U\+LL)
\item
static \textbf{ Technology} $\ast$ \hyperlink{classKatabatic_1_1Session_a109acfd064f3c1854abb8bb2c9b4ad30}{get\+Technology} ()
\item
static \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$ \hyperlink{classKatabatic_1_1Session_a1ec4ff2ad2a5b964c0ff98170a366197}{get\+Katabatic} ()
\item
static const Configuration $\ast$ \hyperlink{classKatabatic_1_1Session_a4d9fd503149d2fff66eb8ba3955b7a13}{get\+Configuration} ()
\item
static float \hyperlink{classKatabatic_1_1Session_a266a4079ca235e8fdb622ef4996d324d}{get\+Saturate\+Ratio} ()
\item
static size\+\_\+t \hyperlink{classKatabatic_1_1Session_adfdaa8b3e81de14fce1f99444b35fcda}{get\+Saturate\+Rp} ()
\item
static \textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1Session_a909ce95ac840ee708f9a49366f0c2690}{get\+Extension\+Cap} ()
\item
static \textbf{ Routing\+Gauge} $\ast$ \hyperlink{classKatabatic_1_1Session_a9a05289b33122f312aa2c88c4b023292}{get\+Routing\+Gauge} ()
\item
static const \textbf{ Layer} $\ast$ \hyperlink{classKatabatic_1_1Session_a3efd0f0d87be640dc566c1afd821e5e6}{get\+Routing\+Layer} (size\+\_\+t)
\item
static const \textbf{ Layer} $\ast$ \hyperlink{classKatabatic_1_1Session_ad3ee60a34f480bd3aecd8c7d957ff52e}{get\+Contact\+Layer} (size\+\_\+t)
\item
static size\+\_\+t \hyperlink{classKatabatic_1_1Session_ac9c144a8faf97714069824933970923c}{get\+Segment\+Stack\+Size} ()
\item
static size\+\_\+t \hyperlink{classKatabatic_1_1Session_a0d0c0159030a32b78ab4ad2b58871bce}{get\+Contact\+Stack\+Size} ()
\item
static const vector$<$ \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ $>$ \& \hyperlink{classKatabatic_1_1Session_a6060b7e972f3c0d10cfa158b5ed174e6}{get\+Invalidateds} ()
\item
static const vector$<$ \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ $>$ \& \hyperlink{classKatabatic_1_1Session_af5675d50557db83d11b7d2151de5f34c}{get\+Revalidateds} ()
\item
static const vector$<$ \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ $>$ \& \hyperlink{classKatabatic_1_1Session_a84211b77fe7fb8b49a93d7f298a5de90}{get\+Doglegs} ()
\item
static const set$<$ \textbf{ Net} $\ast$ $>$ \& \hyperlink{classKatabatic_1_1Session_a6c3be93d98029b06138f633342d04157}{get\+Nets\+Modificateds} ()
\item
static \hyperlink{classKatabatic_1_1Session}{Session} $\ast$ \hyperlink{classKatabatic_1_1Session_a000e098850f6cccff6b289a294149a41}{open} (\hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_a5ae591df94fc66ccb85cbb6565368bca}{close} ()
\item
static void \hyperlink{classKatabatic_1_1Session_af9919aefa1db2478b3d1813c1872d175}{set\+Katabatic\+Flags} (unsigned int)
\item
static void \hyperlink{classKatabatic_1_1Session_aed01e83f7d8dc7acd85156256a9e776c}{dogleg} (\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_a69fc41ca90fae86766ae9d528394868f}{revalidate\+Topology} ()
\item
static void \hyperlink{classKatabatic_1_1Session_a16f4761496e07b9e836642d1effa1993}{set\+Invalidate\+Mask} (unsigned int)
\item
static void \hyperlink{classKatabatic_1_1Session_ae310a7c2c301b7e5f90fba5d34cc5be9}{invalidate} (\textbf{ Net} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_a1f8da0ae3a9d714c1dfae69904acec5f}{invalidate} (\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_a7968875ccb5abb2c6f6d5dec92027550}{invalidate} (\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$)
\item
static size\+\_\+t \hyperlink{classKatabatic_1_1Session_a4da9e28432c1fdb0c754717487d9cc83}{revalidate} ()
\item
static void \hyperlink{classKatabatic_1_1Session_a8fad7191a9fc248f84e71cf1c9d0c6be}{link} (\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_ab12ddab837097ec298ede4f66302b677}{link} (\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_a10c42636ea5786d898d530905ccb30d6}{unlink} (\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$)
\item
static void \hyperlink{classKatabatic_1_1Session_ab815a7824e0253142af6b8a204c361ec}{unlink} (\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$)
\item
static \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$ \hyperlink{classKatabatic_1_1Session_acc20c1f675cc59f9a0068aba727eca47}{lookup} (\textbf{ Contact} $\ast$)
\item
static \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ \hyperlink{classKatabatic_1_1Session_a6e465f0a592fee7e1e45b6c825b8a5da}{lookup} (\textbf{ Segment} $\ast$)
\end{DoxyCompactItemize}
\subsection{Detailed Description}
Modification \hyperlink{classKatabatic_1_1Session}{Session} for \hyperlink{namespaceKatabatic}{Katabatic}.
To perform modifications, the \hyperlink{namespaceKatabatic}{Katabatic} data structure uses a session mechanism built on top of the \textbf{ Hurricane\+::\+Update\+Session} one. Sessions obeys very simples rules\+:
\begin{DoxyItemize}
\item Only one \hyperlink{classKatabatic_1_1Session}{Session} can be opened at a time with \hyperlink{classKatabatic_1_1Session_a000e098850f6cccff6b289a294149a41}{Session\+::open()}.
\item Subsequent calls to \hyperlink{classKatabatic_1_1Session_a000e098850f6cccff6b289a294149a41}{Session\+::open()} returns the currently opened session until \hyperlink{classKatabatic_1_1Session_a5ae591df94fc66ccb85cbb6565368bca}{Session\+::close()} is called.
\item Revalidation can take place whithout closing the \hyperlink{classKatabatic_1_1Session}{Session} by calling \hyperlink{classKatabatic_1_1Session_a4da9e28432c1fdb0c754717487d9cc83}{Session\+::revalidate()}.
\end{DoxyItemize}
The task of a \hyperlink{classKatabatic_1_1Session}{Session} is to keep track of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} and \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} that have been modificateds (i.\+e. invalidated) and, to restore connexity and/or topology when closed.
Two kinds of revalidation could be performed\+:
\begin{DoxyItemize}
\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.
\begin{DoxyItemize}
\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.
\end{DoxyItemize}After a topological mofication has been done, the net needs to be re-\/canonized then the geometrical step takes place.
\end{DoxyItemize}
The kind of revalidation needed is automatically detected by the \hyperlink{classKatabatic_1_1Session}{Session}.
In addition to it\textquotesingle{}s main purpose, \hyperlink{classKatabatic_1_1Session}{Session} also provides cached access to frequently needed variables either from Hurricane or \hyperlink{namespaceKatabatic}{Katabatic} Configuration and access to the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} \& \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} L\+U\+Ts of \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine}.
From a software point of view, \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 \hyperlink{classKatabatic_1_1Session}{Session}\+:
\begin{DoxyItemize}
\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 \hyperlink{classKatabatic_1_1Session_a4da9e28432c1fdb0c754717487d9cc83}{revalidate()}}).
\end{DoxyItemize}
Schematic description of how a \hyperlink{classKatabatic_1_1Session}{Session} works\+:
\begin{DoxyItemize}
\item If at least one net has been invalidated, meaning that it\textquotesingle{}s topology has changed, perform {\ttfamily \+\_\+revalidate\+Topology()}.
\begin{DoxyItemize}
\item Update net topology\+: correct the topology of each contacts, making dogleg when needed. The \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).
\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.
\end{DoxyItemize}This stage can add itself more invalidated Auto\+Segments and Auto\+Contacts as it create doglegs.
\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.
\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).
\end{DoxyItemize}
\subsection{Member Function Documentation}
\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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
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 \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 \hyperlink{classKatabatic_1_1Session}{Session} singleton, if no session is currently open throw an exception carrying {\ttfamily message}.
References Auto\+Segment\+::base(), Auto\+Contact\+::can\+Destroy(), Katabatic\+::\+Engine\+Active, Auto\+Segment\+::get\+Aligneds(), Auto\+Segment\+::get\+Axis(), Katabatic\+Engine\+::get\+Routing\+Gauge(), Routing\+Gauge\+::get\+Technology(), Auto\+Segment\+::is\+Global(), Auto\+Segment\+::is\+Unset\+Axis(), Katabatic\+::\+Kb\+Propagate, Katabatic\+::\+Kb\+Realignate, Katabatic\+::\+Seg\+Canonical, Katabatic\+::\+Seg\+Not\+Aligned, Katabatic\+::\+Seg\+Weak\+Global, Auto\+Segment\+::set\+Axis(), Auto\+Segment\+::set\+Flags(), Db\+U\+::to\+Lambda(), Auto\+Segment\+::to\+Optimal\+Axis(), and Auto\+Segment\+::unset\+Flags().
\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 \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$ get\+Katabatic (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
Referenced by Auto\+Segment\+::create(), and Auto\+Segment\+::make\+Dogleg().
\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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Horizontal\+::\+\_\+make\+Dogleg(), Auto\+Vertical\+::\+\_\+make\+Dogleg(), Auto\+Segment\+::can\+Move\+Up(), and Auto\+Segment\+::reduce\+Dogleg\+Layer().
\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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
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]}}
\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]}}
\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(), G\+Cell\+::\+Compare\+By\+Density\+::\+Compare\+By\+Density(), G\+Cell\+::has\+Free\+Track(), Auto\+Segment\+::make\+Dogleg(), Auto\+Segment\+::raise(), Auto\+Segment\+::reduce\+Dogleg\+Layer(), Auto\+Segment\+::slacken(), 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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
Referenced by Auto\+Segment\+::create(), 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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut.
References anonymous\+\_\+namespace\{\+Load\+Gr\+By\+Net.\+cpp\}\+::\+No\+Flags.
\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 \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 \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$<$ \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$<$ \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$<$ \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 \hyperlink{classKatabatic_1_1AutoHorizontal}{Auto\+Horizontal} and \hyperlink{classKatabatic_1_1AutoVertical}{Auto\+Vertical} put a triplet (for example in horizontal direction {\ttfamily }(h1,v1,h2) ) for each dogleg composed of\+:
\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}
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Vertical\+::\+\_\+can\+Slacken(), Auto\+Segment\+::make\+Dogleg(), and Auto\+Segment\+::reduce\+Dogleg\+Layer().
\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 \hyperlink{classKatabatic_1_1Session}{Session} $\ast$ open (\begin{DoxyParamCaption}\item[{\hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$}]{ktbt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Opens a new session or returns the already opened one, if any.
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 \hyperlink{classKatabatic_1_1Session}{Session}, triggering the revalidation of the Auto\+Segemnts and Auto\+Contacts. If no \hyperlink{classKatabatic_1_1Session}{Session} is opened, throws an execption.
References Routing\+Gauge\+::get\+Layer\+Direction(), Constant\+::\+Horizontal, Katabatic\+::\+Kb\+Horizontal, Katabatic\+::\+Kb\+Vertical, anonymous\+\_\+namespace\{\+Load\+Gr\+By\+Net.\+cpp\}\+::\+No\+Flags, Constant\+::\+Pin\+Only, and Constant\+::\+Vertical.
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]}}
\hyperlink{namespaceKatabatic}{Katabatic} shortcut. \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[{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{auto\+Segment }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
Adds an \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} to the dogleg vector.
References Routing\+Layer\+Gauge\+::get\+Depth().
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]}}
Schedule {\ttfamily net} for a full revalidation, topological correction and canonization.
Referenced by Auto\+Segment\+::\+\_\+invalidate(), Auto\+Segment\+::\+\_\+post\+Create(), and Auto\+Segment\+::raise().
\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[{\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[{\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. \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[{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$}]{ac }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Adds {\ttfamily ac} in the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} lookup table (allow to retrieve an \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[{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{as }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Adds {\ttfamily as} in the \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} lookup table (allow to retrieve an \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[{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$}]{ac }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Removes {\ttfamily ac} from the \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[{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{as }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Removes {\ttfamily as} from the \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 \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$ lookup (\begin{DoxyParamCaption}\item[{\textbf{ Contact} $\ast$}]{contact }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Lookup the \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\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), Auto\+Segment\+::get\+Opposite\+Anchor(), Auto\+Segment\+::get\+Perpandiculars\+Bound(), Auto\+Contact\+V\+Tee\+::get\+Segment(), Auto\+Contact\+Turn\+::get\+Segment(), and Auto\+Contact\+H\+Tee\+::get\+Segment().
\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 \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ lookup (\begin{DoxyParamCaption}\item[{\textbf{ Segment} $\ast$}]{segment }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Lookup the \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}