286 lines
23 KiB
TeX
286 lines
23 KiB
TeX
\hypertarget{classKite_1_1Session}{}\subsection{Session Class Reference}
|
|
\label{classKite_1_1Session}\index{Session@{Session}}
|
|
|
|
|
|
\mbox{\hyperlink{namespaceKite}{Kite}} update \mbox{\hyperlink{classKite_1_1Session}{Session}}.
|
|
|
|
|
|
|
|
|
|
Inheritance diagram for Session\+:\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=168pt]{classKite_1_1Session__inherit__graph}
|
|
\end{center}
|
|
\end{figure}
|
|
\subsubsection*{Static Public Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1Session}{Session}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_ab8362982a442b5a67f5bd76d6b6caf93}{open}} (\mbox{\hyperlink{classKite_1_1KiteEngine}{Kite\+Engine}} $\ast$)
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1Session}{Session}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4}{get}} (const char $\ast$message=N\+U\+LL)
|
|
\item
|
|
static \textbf{ Katabatic\+::\+Session} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a8a3fc782c34dc075bb2e14209e245494}{base}} ()
|
|
\item
|
|
static bool \mbox{\hyperlink{classKite_1_1Session_af337ffd75e4f019ce15302c60715d84b}{is\+Empty}} ()
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1KiteEngine}{Kite\+Engine}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a7b6c91acd2c2a7c082b3b006c1bdc91d}{get\+Kite\+Engine}} ()
|
|
\item
|
|
static Configuration $\ast$ \mbox{\hyperlink{classKite_1_1Session_a9a7fbadfe526875680f698c76adfb128}{get\+Configuration}} ()
|
|
\item
|
|
static \textbf{ Net} $\ast$ \mbox{\hyperlink{classKite_1_1Session_aef6f41b0e8265ad574d1797f46ab9fa8}{get\+Blockage\+Net}} ()
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1NegociateWindow}{Negociate\+Window}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a39ebff178f2e0abb9d5a29f485e0bbab}{get\+Negociate\+Window}} ()
|
|
\item
|
|
static \textbf{ Katabatic\+::\+G\+Cell} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a27ecb1cf5ffabe1c7901c5c894a5067d}{get\+G\+Cell\+Under}} (\textbf{ Db\+U\+::\+Unit}, \textbf{ Db\+U\+::\+Unit})
|
|
\item
|
|
static void \mbox{\hyperlink{classKite_1_1Session_ad4f08dfb62ce626ed72023ce02e7205f}{add\+Insert\+Event}} (\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$, \mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$)
|
|
\item
|
|
static void \mbox{\hyperlink{classKite_1_1Session_aedd573fc951ed93f8ada5b0522813c3a}{add\+Remove\+Event}} (\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$)
|
|
\item
|
|
static void \mbox{\hyperlink{classKite_1_1Session_aa42e4cb9e2559c00d68821f535ef7838}{add\+Move\+Event}} (\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$, \mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$)
|
|
\item
|
|
static void \mbox{\hyperlink{classKite_1_1Session_a990d32b1f1ea661b088a05f86319772f}{add\+Sort\+Event}} (\mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$, bool forced=false)
|
|
\item
|
|
static size\+\_\+t \mbox{\hyperlink{classKite_1_1Session_a5bd93abe1416952ace15a98dbeeed124}{revalidate}} ()
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a1728621b96081c32fb7bfb18a0ebfad3}{lookup}} (\textbf{ Segment} $\ast$)
|
|
\item
|
|
static \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ \mbox{\hyperlink{classKite_1_1Session_a3946039ef19b5b6994171288f183bdaf}{lookup}} (\textbf{ Auto\+Segment} $\ast$)
|
|
\end{DoxyCompactItemize}
|
|
|
|
|
|
\subsubsection{Detailed Description}
|
|
\mbox{\hyperlink{namespaceKite}{Kite}} update \mbox{\hyperlink{classKite_1_1Session}{Session}}.
|
|
|
|
\mbox{\hyperlink{classKite_1_1Session}{Session}} extend the Katabatic update session to the \mbox{\hyperlink{namespaceKite}{Kite}} router level. Mainly by managing \mbox{\hyperlink{classKite_1_1Track}{Track}} update.
|
|
|
|
{\bfseries Difference between \mbox{\hyperlink{namespaceKite}{Kite}} \& Katabatic sessions\+:}
|
|
\begin{DoxyItemize}
|
|
\item In Katabatic, segments are actually moved {\itshape before} the revalidation, then {\itshape during} the revalidation, contacts and topologies are adjusteds
|
|
\item In \mbox{\hyperlink{namespaceKite}{Kite}}, nothing is moved until the revalidation. Requests for segment displacement are queued for the session.
|
|
\end{DoxyItemize}
|
|
|
|
{\bfseries Asymmetry between invalidation \& revalidation\+:}
|
|
\begin{DoxyItemize}
|
|
\item When a \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} (or directly an Auto\+Segment) is invalidated both associated Auto\+Segment and \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} are invalidated (through the Observer mechanism).
|
|
\item When an Auto\+Segment is revalidated, the \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} is {\bfseries not} immediatly revalidated. See the revalidate algorithm for more details.
|
|
\end{DoxyItemize}
|
|
|
|
{\bfseries Indirect \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} invalidation\+:}
|
|
\begin{DoxyItemize}
|
|
\item \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} invalidation do not result only from direct insertion in \mbox{\hyperlink{classKite_1_1Track}{Track}}. For example, any or all of it\textquotesingle{}s perpandicular can be invalidated trough the \textbf{ Katabatic\+::\+Session} update (the perpandicular \textbf{ Katabatic\+::\+Auto\+Segment} is revalidated, generating invalidation on their associated \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}}).
|
|
\end{DoxyItemize}
|
|
|
|
For details on how Katabatic Sessions works, have a look to \textbf{ Katabatic\+::\+Session}.\hypertarget{classKite_1_1Session_secSessionMechanism}{}\subsubsection{The Session Mechanism.}\label{classKite_1_1Session_secSessionMechanism}
|
|
Delayed modification procedure \+:
|
|
\begin{DoxyItemize}
|
|
\item Modifications events are recorded (queued) into the \mbox{\hyperlink{classKite_1_1Session}{Session}}. At this step, no modification are actually done, the data-\/base retains it\textquotesingle{}s previous state and coherency.
|
|
\item The {\ttfamily \mbox{\hyperlink{classKite_1_1Session_a5bd93abe1416952ace15a98dbeeed124}{revalidate()}}} procedure is called (or the \mbox{\hyperlink{classKite_1_1Session}{Session}} is closed), then all the modification events are applied. The data-\/base is in now in it\textquotesingle{}s new state.
|
|
\end{DoxyItemize}\hypertarget{classKite_1_1Session_secKiteSessionRevalidate}{}\subsubsection{The Revalidate Algorithm.}\label{classKite_1_1Session_secKiteSessionRevalidate}
|
|
Revalidation steps \+:
|
|
\begin{DoxyItemize}
|
|
\item Process all remove events. detach \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} from their \mbox{\hyperlink{classKite_1_1Track}{Track}}, but do not remove the pointer from the internal {\ttfamily vector}.
|
|
\item Pack all \mbox{\hyperlink{classKite_1_1Track}{Track}} in which removal have took place.
|
|
\item Process all insert events. {\bfseries This is the time \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} are moved into their new \mbox{\hyperlink{classKite_1_1Track}{Track}} (physical displacement)}. It is at this point that the invalidation of both Auto\+Segment and \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} is done.
|
|
\item Call the \textbf{ Katabatic\+::\+Session\+::revalidate()} method which will recompute the correct contact extensions and topologies. {\itshape After} this step the Katabatic data-\/base is up to date, but {\itshape not} the \mbox{\hyperlink{namespaceKite}{Kite}} one. Auto\+Segment are revalidated.
|
|
\item Recompute the canonical position of source and target of all invalidateds \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} (take account of extention modifications). The set of invalidated \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} is computed from the revalidated Auto\+Segment, that is Auto\+Segment that are canonical.
|
|
\item Perform a sort() on all \mbox{\hyperlink{classKite_1_1Track}{Track}} that have been modifieds.
|
|
\item Now that the size of the segments have been accurately computed, look for revalidateds \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} that\+:
|
|
\begin{DoxyEnumerate}
|
|
\item Can be reduced, generate a track remove event.
|
|
\item Must be raised, generate a routing event (put into the queue).
|
|
\end{DoxyEnumerate}
|
|
\item Process the additional track remove events.
|
|
\end{DoxyItemize}
|
|
|
|
{\bfseries Note\+:} We cannot use the Observer mechanism to automatically update \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} from an Auto\+Segment, because we must wait for all Auto\+Segments (canonical or not) involved into the \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} to be up to date before we can update it.
|
|
|
|
{\bfseries Note\+:} Have to talk about the special case when new canonical Auto\+Segment appears after dogleg creation.\hypertarget{classKite_1_1Session_secKiteSessionLookup}{}\subsubsection{The Lookup Mechanism}\label{classKite_1_1Session_secKiteSessionLookup}
|
|
There are two lookup mechanisms\+:
|
|
\begin{DoxyItemize}
|
|
\item From a \textbf{ Hurricane\+::\+Segment}, we uses the Katabatic segment lookup table (slow, stored in a {\ttfamily map$<$$>$}).
|
|
\item From a \textbf{ Katabatic\+::\+Auto\+Segment}, we uses the Observer, it\textquotesingle{}s owner is the \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} (fast).
|
|
\end{DoxyItemize}
|
|
|
|
\subsubsection{Member Function Documentation}
|
|
\mbox{\Hypertarget{classKite_1_1Session_ab8362982a442b5a67f5bd76d6b6caf93}\label{classKite_1_1Session_ab8362982a442b5a67f5bd76d6b6caf93}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!open@{open}}
|
|
\index{open@{open}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{open()}{open()}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1Session}{Session}} $\ast$ open (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1KiteEngine}{Kite\+Engine}} $\ast$}]{kite }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em kite} & A \mbox{\hyperlink{namespaceKite}{Kite}} Tool\+Engine on which to work. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyReturn}{Returns}
|
|
A new \mbox{\hyperlink{namespaceKite}{Kite}} update \mbox{\hyperlink{classKite_1_1Session}{Session}}.
|
|
\end{DoxyReturn}
|
|
Open a new \mbox{\hyperlink{namespaceKite}{Kite}} update \mbox{\hyperlink{classKite_1_1Session}{Session}} on the {\ttfamily kite} {\ttfamily Tool\+Engine}. At this point only one session can be opened at a time. Attempt to open a second one will result in an exception. \mbox{\Hypertarget{classKite_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4}\label{classKite_1_1Session_a76f17c3642eaeba85fa0af5ae9d208b4}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get@{get}}
|
|
\index{get@{get}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get()}{get()}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1Session}{Session}} $\ast$ get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message = {\ttfamily NULL} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The currently opened session, {\ttfamily N\+U\+LL} if no session has been opened.
|
|
|
|
Referenced by Negociate\+Window\+::run().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a8a3fc782c34dc075bb2e14209e245494}\label{classKite_1_1Session_a8a3fc782c34dc075bb2e14209e245494}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!base@{base}}
|
|
\index{base@{base}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{base()}{base()}}
|
|
{\footnotesize\ttfamily \textbf{ Katabatic\+::\+Session} $\ast$ base (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The \mbox{\hyperlink{classKite_1_1Session}{Session}}, casted as it\textquotesingle{}s base object. \mbox{\Hypertarget{classKite_1_1Session_af337ffd75e4f019ce15302c60715d84b}\label{classKite_1_1Session_af337ffd75e4f019ce15302c60715d84b}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!is\+Empty@{is\+Empty}}
|
|
\index{is\+Empty@{is\+Empty}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{is\+Empty()}{isEmpty()}}
|
|
{\footnotesize\ttfamily bool is\+Empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
Ensure that the \mbox{\hyperlink{classKite_1_1Session}{Session}} is empty and can be closed (deleted) safely.
|
|
|
|
Referenced by Negociate\+Window\+::run().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a7b6c91acd2c2a7c082b3b006c1bdc91d}\label{classKite_1_1Session_a7b6c91acd2c2a7c082b3b006c1bdc91d}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get\+Kite\+Engine@{get\+Kite\+Engine}}
|
|
\index{get\+Kite\+Engine@{get\+Kite\+Engine}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get\+Kite\+Engine()}{getKiteEngine()}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1KiteEngine}{Kite\+Engine}} $\ast$ get\+Kite\+Engine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The \mbox{\hyperlink{namespaceKite}{Kite}} Tool\+Engine associated to the current update session (proxy helper).
|
|
|
|
Referenced by Manipulator\+::can\+Ripup(), Segment\+Fsm\+::conflict\+Solve\+By\+History(), Segment\+Fsm\+::conflict\+Solve\+By\+Placeds(), Negociate\+Window\+::create\+Track\+Segment(), Segment\+Action\+::do\+Action(), Routing\+Event\+::process(), Routing\+Event\+::revalidate(), Manipulator\+::ripple(), Manipulator\+::ripup\+Perpandiculars(), Negociate\+Window\+::run(), Segment\+Fsm\+::\+Segment\+Fsm(), and Negociate\+Window\+::set\+G\+Cells().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a9a7fbadfe526875680f698c76adfb128}\label{classKite_1_1Session_a9a7fbadfe526875680f698c76adfb128}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get\+Configuration@{get\+Configuration}}
|
|
\index{get\+Configuration@{get\+Configuration}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get\+Configuration()}{getConfiguration()}}
|
|
{\footnotesize\ttfamily Configuration $\ast$ get\+Configuration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The \mbox{\hyperlink{namespaceKite}{Kite}} Configuration of the Router (proxy helper). \mbox{\Hypertarget{classKite_1_1Session_aef6f41b0e8265ad574d1797f46ab9fa8}\label{classKite_1_1Session_aef6f41b0e8265ad574d1797f46ab9fa8}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get\+Blockage\+Net@{get\+Blockage\+Net}}
|
|
\index{get\+Blockage\+Net@{get\+Blockage\+Net}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get\+Blockage\+Net()}{getBlockageNet()}}
|
|
{\footnotesize\ttfamily \textbf{ Net} $\ast$ get\+Blockage\+Net (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The net used to create blockage components (proxy helper).
|
|
|
|
Referenced by Track\+Fixed\+Segment\+::create().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a39ebff178f2e0abb9d5a29f485e0bbab}\label{classKite_1_1Session_a39ebff178f2e0abb9d5a29f485e0bbab}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get\+Negociate\+Window@{get\+Negociate\+Window}}
|
|
\index{get\+Negociate\+Window@{get\+Negociate\+Window}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get\+Negociate\+Window()}{getNegociateWindow()}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1NegociateWindow}{Negociate\+Window}} $\ast$ get\+Negociate\+Window (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The current \mbox{\hyperlink{classKite_1_1NegociateWindow}{Negociate\+Window}} (proxy helper).
|
|
|
|
Referenced by Track\+Segment\+::\+\_\+post\+Doglegs(), and Track\+Segment\+::reschedule().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a27ecb1cf5ffabe1c7901c5c894a5067d}\label{classKite_1_1Session_a27ecb1cf5ffabe1c7901c5c894a5067d}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!get\+G\+Cell\+Under@{get\+G\+Cell\+Under}}
|
|
\index{get\+G\+Cell\+Under@{get\+G\+Cell\+Under}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{get\+G\+Cell\+Under()}{getGCellUnder()}}
|
|
{\footnotesize\ttfamily \textbf{ Katabatic\+::\+G\+Cell} $\ast$ get\+G\+Cell\+Under (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{x, }\item[{\textbf{ Db\+U\+::\+Unit}}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} The G\+Cell under {\ttfamily }(x,y) (proxy helper, see \textbf{ Katabatic\+::\+G\+Cell\+Grid\+::get\+G\+Cell()}).
|
|
|
|
Referenced by Segment\+Fsm\+::conflict\+Solve\+By\+History().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_ad4f08dfb62ce626ed72023ce02e7205f}\label{classKite_1_1Session_ad4f08dfb62ce626ed72023ce02e7205f}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!add\+Insert\+Event@{add\+Insert\+Event}}
|
|
\index{add\+Insert\+Event@{add\+Insert\+Event}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{add\+Insert\+Event()}{addInsertEvent()}}
|
|
{\footnotesize\ttfamily void add\+Insert\+Event (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$}]{segment, }\item[{\mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$}]{track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em segment} & An Auto\+Segment to insert in a \mbox{\hyperlink{classKite_1_1Track}{Track}}. \\
|
|
\hline
|
|
{\em track} & The \mbox{\hyperlink{classKite_1_1Track}{Track}} into which the {\itshape segment} will be inserted.\\
|
|
\hline
|
|
\end{DoxyParams}
|
|
Schedule the insertion of {\itshape segment} into \mbox{\hyperlink{classKite_1_1Track}{Track}} {\itshape track}. The {\itshape segment} must not already be part of a \mbox{\hyperlink{classKite_1_1Track}{Track}}. \mbox{\Hypertarget{classKite_1_1Session_aedd573fc951ed93f8ada5b0522813c3a}\label{classKite_1_1Session_aedd573fc951ed93f8ada5b0522813c3a}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!add\+Remove\+Event@{add\+Remove\+Event}}
|
|
\index{add\+Remove\+Event@{add\+Remove\+Event}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{add\+Remove\+Event()}{addRemoveEvent()}}
|
|
{\footnotesize\ttfamily void add\+Remove\+Event (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$}]{segment }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em segment} & A \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} to remove from a \mbox{\hyperlink{classKite_1_1Track}{Track}}.\\
|
|
\hline
|
|
\end{DoxyParams}
|
|
Schedule the removal of {\itshape segment} from \mbox{\hyperlink{classKite_1_1Track}{Track}} {\itshape track}.
|
|
|
|
Referenced by Segment\+Action\+::do\+Action(), and Track\+Segment\+::reschedule().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_aa42e4cb9e2559c00d68821f535ef7838}\label{classKite_1_1Session_aa42e4cb9e2559c00d68821f535ef7838}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!add\+Move\+Event@{add\+Move\+Event}}
|
|
\index{add\+Move\+Event@{add\+Move\+Event}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{add\+Move\+Event()}{addMoveEvent()}}
|
|
{\footnotesize\ttfamily void add\+Move\+Event (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$}]{segment, }\item[{\mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$}]{track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em segment} & An Auto\+Segment to move into a new \mbox{\hyperlink{classKite_1_1Track}{Track}}. \\
|
|
\hline
|
|
{\em track} & The \mbox{\hyperlink{classKite_1_1Track}{Track}} into which the {\itshape segment} will be moved.\\
|
|
\hline
|
|
\end{DoxyParams}
|
|
Schedule the displacement of {\itshape segment} into \mbox{\hyperlink{classKite_1_1Track}{Track}} {\itshape track}. \mbox{\Hypertarget{classKite_1_1Session_a990d32b1f1ea661b088a05f86319772f}\label{classKite_1_1Session_a990d32b1f1ea661b088a05f86319772f}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!add\+Sort\+Event@{add\+Sort\+Event}}
|
|
\index{add\+Sort\+Event@{add\+Sort\+Event}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{add\+Sort\+Event()}{addSortEvent()}}
|
|
{\footnotesize\ttfamily void add\+Sort\+Event (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1Track}{Track}} $\ast$}]{track, }\item[{bool}]{forced = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em track} & The \mbox{\hyperlink{classKite_1_1Track}{Track}} to update. \\
|
|
\hline
|
|
{\em forced} & Force the invalidation of the {\ttfamily \mbox{\hyperlink{classKite_1_1Track}{Track}}}.\\
|
|
\hline
|
|
\end{DoxyParams}
|
|
Schedule the update of \mbox{\hyperlink{classKite_1_1Track}{Track}} {\itshape track}. If the {\ttfamily \mbox{\hyperlink{classKite_1_1Track}{Track}}} has not been invalidated, no actual sort will takes place. To force a sort (manually invalidating the {\ttfamily \mbox{\hyperlink{classKite_1_1Track}{Track}}}), sets {\bfseries forced} to {\bfseries true}.
|
|
|
|
{\bfseries See also\+:}~ Track\+::pack() \& Track\+::sort().
|
|
|
|
Referenced by Track\+Segment\+::revalidate().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a5bd93abe1416952ace15a98dbeeed124}\label{classKite_1_1Session_a5bd93abe1416952ace15a98dbeeed124}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!revalidate@{revalidate}}
|
|
\index{revalidate@{revalidate}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{revalidate()}{revalidate()}}
|
|
{\footnotesize\ttfamily void revalidate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}
|
|
|
|
Applies all the requested modifications, but keeping the session opened.
|
|
|
|
Referenced by Routing\+Event\+::process(), Negociate\+Window\+::run(), and Negociate\+Window\+::set\+G\+Cells().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a1728621b96081c32fb7bfb18a0ebfad3}\label{classKite_1_1Session_a1728621b96081c32fb7bfb18a0ebfad3}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!lookup@{lookup}}
|
|
\index{lookup@{lookup}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{lookup()}{lookup()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ lookup (\begin{DoxyParamCaption}\item[{\textbf{ Segment} $\ast$}]{segment }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} the \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} associated to {\ttfamily segment}.
|
|
|
|
Referenced by Negociate\+Window\+::compute\+Wirelength(), Track\+Segment\+::create(), Track\+Segment\+::get\+Canonical(), Track\+Segment\+::get\+Parent(), Track\+Segment\+::get\+Source\+Dogleg(), Track\+Segment\+::get\+Target\+Dogleg(), Manipulator\+::relax(), Routing\+Event\+Queue\+::repush\+Invalidateds(), and Negociate\+Window\+::set\+G\+Cells().
|
|
|
|
\mbox{\Hypertarget{classKite_1_1Session_a3946039ef19b5b6994171288f183bdaf}\label{classKite_1_1Session_a3946039ef19b5b6994171288f183bdaf}}
|
|
\index{Kite\+::\+Session@{Kite\+::\+Session}!lookup@{lookup}}
|
|
\index{lookup@{lookup}!Kite\+::\+Session@{Kite\+::\+Session}}
|
|
\paragraph{\texorpdfstring{lookup()}{lookup()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ lookup (\begin{DoxyParamCaption}\item[{\textbf{ Auto\+Segment} $\ast$}]{segment }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
{\bfseries Returns\+:} the \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} associated to {\ttfamily segment}.
|
|
|
|
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
|
|
\item
|
|
Session.\+h\item
|
|
Session.\+dox\end{DoxyCompactItemize}
|