\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\-L\-L) \item static {\bf 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 {\bf Db\-U\-::\-Unit} \hyperlink{classKatabatic_1_1Session_a909ce95ac840ee708f9a49366f0c2690}{get\-Extension\-Cap} () \item static {\bf Routing\-Gauge} $\ast$ \hyperlink{classKatabatic_1_1Session_a9a05289b33122f312aa2c88c4b023292}{get\-Routing\-Gauge} () \item static const {\bf Layer} $\ast$ \hyperlink{classKatabatic_1_1Session_a3efd0f0d87be640dc566c1afd821e5e6}{get\-Routing\-Layer} (size\-\_\-t) \item static const {\bf 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$<$ {\bf 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} ({\bf 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} ({\bf Contact} $\ast$) \item static \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$ \hyperlink{classKatabatic_1_1Session_a6e465f0a592fee7e1e45b6c825b8a5da}{lookup} ({\bf 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 {\bf 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's main purpose, \hyperlink{classKatabatic_1_1Session}{Session} also provides cached access to frequently needed variables either from {\bf 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'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} \hypertarget{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[{is\-In\-Demo\-Mode}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-In\-Demo\-Mode ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a037c7ec3b18ec43973f2e6fe3a172000} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. References Katabatic\-Engine\-::is\-In\-Demo\-Mode(). Referenced by G\-Cell\-::check\-Density(). \hypertarget{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[{do\-Warn\-G\-Cell\-Overload}]{\setlength{\rightskip}{0pt plus 5cm}bool do\-Warn\-G\-Cell\-Overload ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_ad41e6fb02bd7bb01c27fb6aae36f0ddc} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. References Katabatic\-Engine\-::do\-Warn\-On\-G\-Cell\-Overload(). Referenced by G\-Cell\-::check\-Density(). \hypertarget{classKatabatic_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get@{get}} \index{get@{get}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Session} $\ast$ get ( \begin{DoxyParamCaption} \item[{const char $\ast$}]{message = {\ttfamily NULL}} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4} Return the \hyperlink{classKatabatic_1_1Session}{Session} singleton, if no session is currently open throw an exception carrying {\ttfamily message}. \hypertarget{classKatabatic_1_1Session_a109acfd064f3c1854abb8bb2c9b4ad30}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Technology@{get\-Technology}} \index{get\-Technology@{get\-Technology}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Technology}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Technology} $\ast$ get\-Technology ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a109acfd064f3c1854abb8bb2c9b4ad30} {\bf Hurricane} shortcut. \hypertarget{classKatabatic_1_1Session_a1ec4ff2ad2a5b964c0ff98170a366197}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Katabatic@{get\-Katabatic}} \index{get\-Katabatic@{get\-Katabatic}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Katabatic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Katabatic\-Engine} $\ast$ get\-Katabatic ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a1ec4ff2ad2a5b964c0ff98170a366197} \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(). \hypertarget{classKatabatic_1_1Session_a4d9fd503149d2fff66eb8ba3955b7a13}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Configuration@{get\-Configuration}} \index{get\-Configuration@{get\-Configuration}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Configuration}]{\setlength{\rightskip}{0pt plus 5cm}const Configuration $\ast$ get\-Configuration ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a4d9fd503149d2fff66eb8ba3955b7a13} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. Referenced by Auto\-Horizontal\-::\-\_\-make\-Dogleg(), Auto\-Vertical\-::\-\_\-make\-Dogleg(), and Auto\-Segment\-::can\-Move\-Up(). \hypertarget{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[{get\-Saturate\-Ratio}]{\setlength{\rightskip}{0pt plus 5cm}float get\-Saturate\-Ratio ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a266a4079ca235e8fdb622ef4996d324d} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. References Katabatic\-Engine\-::get\-Saturate\-Ratio(). Referenced by G\-Cell\-::is\-Saturated(). \hypertarget{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[{get\-Saturate\-Rp}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-Saturate\-Rp ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_adfdaa8b3e81de14fce1f99444b35fcda} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. References Katabatic\-Engine\-::get\-Saturate\-Rp(). Referenced by G\-Cell\-::rp\-Desaturate(). \hypertarget{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[{get\-Extension\-Cap}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Extension\-Cap ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a909ce95ac840ee708f9a49366f0c2690} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. Referenced by Auto\-Horizontal\-::check\-Positions(), Auto\-Vertical\-::check\-Positions(), Auto\-Horizontal\-::update\-Positions(), and Auto\-Vertical\-::update\-Positions(). \hypertarget{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[{get\-Routing\-Gauge}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Routing\-Gauge} $\ast$ get\-Routing\-Gauge ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a9a05289b33122f312aa2c88c4b023292} \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(). \hypertarget{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[{get\-Routing\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Layer} $\ast$ get\-Routing\-Layer ( \begin{DoxyParamCaption} \item[{size\-\_\-t}]{depth} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a3efd0f0d87be640dc566c1afd821e5e6} \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(). \hypertarget{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[{get\-Contact\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Layer} $\ast$ get\-Contact\-Layer ( \begin{DoxyParamCaption} \item[{size\-\_\-t}]{depth} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_ad3ee60a34f480bd3aecd8c7d957ff52e} \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(). \hypertarget{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[{get\-Segment\-Stack\-Size}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-Segment\-Stack\-Size ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_ac9c144a8faf97714069824933970923c} {\bfseries Returns\-:} The number of \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} in the invalidated stack. \hypertarget{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[{get\-Contact\-Stack\-Size}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-Contact\-Stack\-Size ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a0d0c0159030a32b78ab4ad2b58871bce} {\bfseries Returns\-:} The number of \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} in the invalidated stack. \hypertarget{classKatabatic_1_1Session_a6060b7e972f3c0d10cfa158b5ed174e6}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Invalidateds@{get\-Invalidateds}} \index{get\-Invalidateds@{get\-Invalidateds}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Invalidateds}]{\setlength{\rightskip}{0pt plus 5cm}const vector$<$ {\bf Auto\-Segment} $\ast$ $>$ \& get\-Invalidateds ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a6060b7e972f3c0d10cfa158b5ed174e6} {\bfseries Returns\-:} The stack (vector) of invalidateds Auto\-Segments. \hypertarget{classKatabatic_1_1Session_af5675d50557db83d11b7d2151de5f34c}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Revalidateds@{get\-Revalidateds}} \index{get\-Revalidateds@{get\-Revalidateds}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Revalidateds}]{\setlength{\rightskip}{0pt plus 5cm}const vector$<$ {\bf Auto\-Segment} $\ast$ $>$ \& get\-Revalidateds ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_af5675d50557db83d11b7d2151de5f34c} {\bfseries Returns\-:} The stack (vector) of Auto\-Segments that have been revalidateds. \hypertarget{classKatabatic_1_1Session_a84211b77fe7fb8b49a93d7f298a5de90}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!get\-Doglegs@{get\-Doglegs}} \index{get\-Doglegs@{get\-Doglegs}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{get\-Doglegs}]{\setlength{\rightskip}{0pt plus 5cm}const vector$<$ {\bf Auto\-Segment} $\ast$ $>$ \& get\-Doglegs ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a84211b77fe7fb8b49a93d7f298a5de90} {\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\-Segment\-::make\-Dogleg(). \hypertarget{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[{get\-Nets\-Modificateds}]{\setlength{\rightskip}{0pt plus 5cm}const set$<$ {\bf Net} $\ast$ $>$ \& get\-Nets\-Modificateds ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a6c3be93d98029b06138f633342d04157} {\bfseries Returns\-:} The set of Nets that needs either a topological update or a new canonization. \hypertarget{classKatabatic_1_1Session_a000e098850f6cccff6b289a294149a41}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!open@{open}} \index{open@{open}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Session} $\ast$ open ( \begin{DoxyParamCaption} \item[{{\bf Katabatic\-Engine} $\ast$}]{ktbt} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a000e098850f6cccff6b289a294149a41} Opens a new session or returns the already opened one, if any. References Session\-::get\-Katabatic(). Referenced by G\-Cell\-Grid\-::update\-Contacts(). \hypertarget{classKatabatic_1_1Session_a5ae591df94fc66ccb85cbb6565368bca}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!close@{close}} \index{close@{close}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{close}]{\setlength{\rightskip}{0pt plus 5cm}void close ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a5ae591df94fc66ccb85cbb6565368bca} 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. Referenced by G\-Cell\-Grid\-::update\-Contacts(). \hypertarget{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[{set\-Katabatic\-Flags}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Katabatic\-Flags ( \begin{DoxyParamCaption} \item[{unsigned int}]{flags} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_af9919aefa1db2478b3d1813c1872d175} \hyperlink{namespaceKatabatic}{Katabatic} shortcut. References Katabatic\-Engine\-::set\-Flags(). \hypertarget{classKatabatic_1_1Session_aed01e83f7d8dc7acd85156256a9e776c}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!dogleg@{dogleg}} \index{dogleg@{dogleg}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{dogleg}]{\setlength{\rightskip}{0pt plus 5cm}void dogleg ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Segment} $\ast$}]{auto\-Segment} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_aed01e83f7d8dc7acd85156256a9e776c} Adds an \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} to the dogleg vector. Referenced by Auto\-Horizontal\-::\-\_\-make\-Dogleg(), and Auto\-Vertical\-::\-\_\-make\-Dogleg(). \hypertarget{classKatabatic_1_1Session_a69fc41ca90fae86766ae9d528394868f}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!revalidate\-Topology@{revalidate\-Topology}} \index{revalidate\-Topology@{revalidate\-Topology}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{revalidate\-Topology}]{\setlength{\rightskip}{0pt plus 5cm}void revalidate\-Topology ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a69fc41ca90fae86766ae9d528394868f} Revalidate Net that have been invalidateds and re-\/canonize them. \hypertarget{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[{set\-Invalidate\-Mask}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Invalidate\-Mask ( \begin{DoxyParamCaption} \item[{unsigned int}]{flags} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a16f4761496e07b9e836642d1effa1993} Tells what kind of revalidation must be performed. \hypertarget{classKatabatic_1_1Session_ae310a7c2c301b7e5f90fba5d34cc5be9}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!invalidate@{invalidate}} \index{invalidate@{invalidate}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{invalidate}]{\setlength{\rightskip}{0pt plus 5cm}void invalidate ( \begin{DoxyParamCaption} \item[{{\bf Net} $\ast$}]{net} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_ae310a7c2c301b7e5f90fba5d34cc5be9} Schedule {\ttfamily net} for a full revalidation, topological correction and canonization. Referenced by Auto\-Segment\-::\-\_\-invalidate(), and Auto\-Segment\-::\-\_\-post\-Create(). \hypertarget{classKatabatic_1_1Session_a1f8da0ae3a9d714c1dfae69904acec5f}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!invalidate@{invalidate}} \index{invalidate@{invalidate}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{invalidate}]{\setlength{\rightskip}{0pt plus 5cm}void invalidate ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Contact} $\ast$}]{contact} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a1f8da0ae3a9d714c1dfae69904acec5f} Schedule {\ttfamily contact} for revalidation. \hypertarget{classKatabatic_1_1Session_a7968875ccb5abb2c6f6d5dec92027550}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!invalidate@{invalidate}} \index{invalidate@{invalidate}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{invalidate}]{\setlength{\rightskip}{0pt plus 5cm}void invalidate ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Segment} $\ast$}]{segment} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a7968875ccb5abb2c6f6d5dec92027550} Schedule {\ttfamily segment} for revalidation. \hypertarget{classKatabatic_1_1Session_a4da9e28432c1fdb0c754717487d9cc83}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!revalidate@{revalidate}} \index{revalidate@{revalidate}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{revalidate}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t revalidate ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{classKatabatic_1_1Session_a4da9e28432c1fdb0c754717487d9cc83} Perform the revalidation. Returns the sum of Auto\-Contacts and Auto\-Segemnts that have been revalidated. Referenced by Katabatic\-Engine\-::create\-Detailed\-Grid(). \hypertarget{classKatabatic_1_1Session_a8fad7191a9fc248f84e71cf1c9d0c6be}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!link@{link}} \index{link@{link}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{link}]{\setlength{\rightskip}{0pt plus 5cm}void link ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Contact} $\ast$}]{ac} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a8fad7191a9fc248f84e71cf1c9d0c6be} 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's base Contact). Referenced by Auto\-Segment\-::\-\_\-post\-Create(). \hypertarget{classKatabatic_1_1Session_ab12ddab837097ec298ede4f66302b677}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!link@{link}} \index{link@{link}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{link}]{\setlength{\rightskip}{0pt plus 5cm}void link ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Segment} $\ast$}]{as} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_ab12ddab837097ec298ede4f66302b677} 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's base Segment). \hypertarget{classKatabatic_1_1Session_a10c42636ea5786d898d530905ccb30d6}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!unlink@{unlink}} \index{unlink@{unlink}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{unlink}]{\setlength{\rightskip}{0pt plus 5cm}void unlink ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Contact} $\ast$}]{ac} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a10c42636ea5786d898d530905ccb30d6} Removes {\ttfamily ac} from the \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} lookup table. Referenced by Auto\-Segment\-::\-\_\-pre\-Destroy(). \hypertarget{classKatabatic_1_1Session_ab815a7824e0253142af6b8a204c361ec}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!unlink@{unlink}} \index{unlink@{unlink}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{unlink}]{\setlength{\rightskip}{0pt plus 5cm}void unlink ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Segment} $\ast$}]{as} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_ab815a7824e0253142af6b8a204c361ec} Removes {\ttfamily as} from the \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} lookup table. \hypertarget{classKatabatic_1_1Session_acc20c1f675cc59f9a0068aba727eca47}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!lookup@{lookup}} \index{lookup@{lookup}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{lookup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Auto\-Contact} $\ast$ lookup ( \begin{DoxyParamCaption} \item[{{\bf Contact} $\ast$}]{contact} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_acc20c1f675cc59f9a0068aba727eca47} Lookup the \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} associated with {\ttfamily contact}. {\ttfamily N\-U\-L\-L} 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(). \hypertarget{classKatabatic_1_1Session_a6e465f0a592fee7e1e45b6c825b8a5da}{\index{Katabatic\-::\-Session@{Katabatic\-::\-Session}!lookup@{lookup}} \index{lookup@{lookup}!Katabatic::Session@{Katabatic\-::\-Session}} \subsubsection[{lookup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Auto\-Segment} $\ast$ lookup ( \begin{DoxyParamCaption} \item[{{\bf Segment} $\ast$}]{segment} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKatabatic_1_1Session_a6e465f0a592fee7e1e45b6c825b8a5da} Lookup the \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} associated with {\ttfamily segment}. {\ttfamily N\-U\-L\-L} 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}