\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}