\hypertarget{classKite_1_1RoutingEvent}{}\subsection{Routing\+Event Class Reference}
\label{classKite_1_1RoutingEvent}\index{Routing\+Event@{Routing\+Event}}


Atomic Placement Request for a \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}}.  


\subsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classKite_1_1RoutingEvent_1_1Key}{Key}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} cached key for maps. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}{Mode}} \{ \newline
\mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a3980b02882c46c9bd4caf15040b85d1a}{Negociate}} =1, 
\newline
\mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a5afe185b48d7acf013dd5ccadc5b2414}{Pack}} =2, 
\newline
\mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a27b403019a93f9f127cf64a0688a8288}{Repair}} =3
 \}
\end{DoxyCompactItemize}
\subsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ \mbox{\hyperlink{classKite_1_1RoutingEvent_ad4469c7fdb58a5f0bda8755302e37021}{clone}} () const
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a3a80b6032f86a56bec74609034b3246f}{destroy}} ()
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a213956f734f660863e55f8f398cf932a}{is\+Cloned}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a5bc2a781be2586924afce4e4a4ea6697}{is\+Valid}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_af8b3ab994396ccd821f529c5c02760a5}{is\+Unimplemented}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a83943e04f0ee0a5a38208278b97fc780}{is\+Processed}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a50607443b762961229119228be30c5ad}{is\+Disabled}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a6e38564fbae008179d865f844acba59a}{is\+Forced\+To\+Hint}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_ac460ce43ff71dcdf11091403c4ba9060}{is\+Riped\+By\+Local}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a150a8fe8d214e9de76153c1d20676a98}{get\+Mode}} () const
\item 
bool \mbox{\hyperlink{classKite_1_1RoutingEvent_a85d665e52caee3e804921f52417b0074}{can\+Minimize}} () const
\item 
unsigned int \mbox{\hyperlink{classKite_1_1RoutingEvent_a40ec2b23684a0e6e6d7ac9783a269037}{get\+State}} () const
\item 
const \mbox{\hyperlink{classKite_1_1RoutingEvent_1_1Key}{Key}} \& \mbox{\hyperlink{classKite_1_1RoutingEvent_ade1e79e88bf4f4c173ffd083dd5470c9}{get\+Key}} () const
\item 
\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ \mbox{\hyperlink{classKite_1_1RoutingEvent_a506a4d1cef59fc35984c1c88e0c0f6df}{get\+Segment}} () const
\item 
const vector$<$ \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ $>$ \& \mbox{\hyperlink{classKite_1_1RoutingEvent_ab7d24e13f7b2c62cedce1fda2da7b7f5}{get\+Perpandiculars}} () const
\item 
\textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKite_1_1RoutingEvent_ab94e1b7e323c5344019d6ea545e3ea05}{get\+Axis\+Hint}} () const
\item 
\textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKite_1_1RoutingEvent_ad1c8d7db376d2e0b99eb1f54df29dc71}{get\+Axis\+History}} () const
\item 
long \mbox{\hyperlink{classKite_1_1RoutingEvent_aef5716e4b434aae813b1067a908f8b1a}{get\+Axis\+Weight}} (\textbf{ Db\+U\+::\+Unit}) const
\item 
const \textbf{ Interval} \& \mbox{\hyperlink{classKite_1_1RoutingEvent_a1bea8aed79a2ac4c726e49b93af3cd37}{get\+Constraints}} () const
\item 
const \textbf{ Interval} \& \mbox{\hyperlink{classKite_1_1RoutingEvent_a7dc0bafe113b8ec0c143ae4644ac79d4}{get\+Optimal}} () const
\item 
float \mbox{\hyperlink{classKite_1_1RoutingEvent_a391dd4b2a826c1d4713ef24ba25f687a}{get\+Priority}} () const
\item 
unsigned int \mbox{\hyperlink{classKite_1_1RoutingEvent_acd1128e75a441b654e6d881c495db4f7}{get\+Tracks\+Nb}} () const
\item 
unsigned int \mbox{\hyperlink{classKite_1_1RoutingEvent_a00f02910915e7deb857f023e5d584c08}{get\+Insert\+State}} () const
\item 
unsigned int \mbox{\hyperlink{classKite_1_1RoutingEvent_aebcd2884d8fa70256b0041b29e14404d}{get\+Event\+Level}} () const
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a5bd93abe1416952ace15a98dbeeed124}{revalidate}} ()
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a14468bece068cbc5221f057226ee8955}{update\+Key}} ()
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a6add4f520081c698421481bf8fe0ad1f}{process}} (\mbox{\hyperlink{classKite_1_1RoutingEventQueue}{Routing\+Event\+Queue}} \&, \mbox{\hyperlink{classKite_1_1RoutingEventHistory}{Routing\+Event\+History}} \&, \mbox{\hyperlink{classKite_1_1RoutingEventLoop}{Routing\+Event\+Loop}} \&)
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_ae2eddb4497661b6319616a70c4acd165}{set\+Segment}} (\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$)
\item 
\mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ \mbox{\hyperlink{classKite_1_1RoutingEvent_abf2d02f18f96183fc6e78f3e6dc8cbf6}{reschedule}} (\mbox{\hyperlink{classKite_1_1RoutingEventQueue}{Routing\+Event\+Queue}} \&, unsigned int event\+Level)
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a85982827650655ef9d6e1206874ead69}{set\+Mode}} (unsigned int)
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_af7ce7f73feb28f3df8f3180632a2f731}{set\+State}} (unsigned int)
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a02a3f1f2801d4ebbbe676e062878faae}{set\+Axis\+Hint\+From\+Parent}} ()
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a86c4b1b3d406c12667188ad44ce366db}{inc\+Insert\+State}} ()
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_ae35f271a106f6c6a6039e4a6f8bf4009}{reset\+Insert\+State}} ()
\item 
void \mbox{\hyperlink{classKite_1_1RoutingEvent_a70a9ecd62b806eff001aa602132cc630}{set\+Event\+Level}} (unsigned int)
\end{DoxyCompactItemize}
\subsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static unsigned int \mbox{\hyperlink{classKite_1_1RoutingEvent_a110307ff26b264ea83f69aa1bab23626}{get\+Stage}} ()
\item 
static size\+\_\+t \mbox{\hyperlink{classKite_1_1RoutingEvent_a91c8bc1a6bdb1b15c3c084ebfd38af47}{get\+Allocateds}} ()
\item 
static size\+\_\+t \mbox{\hyperlink{classKite_1_1RoutingEvent_a0a3993330692b7eb816e9c776d161ad1}{get\+Processeds}} ()
\item 
static void \mbox{\hyperlink{classKite_1_1RoutingEvent_a6cf10bb4e4488948e4c616c55a8e6514}{reset\+Processeds}} ()
\item 
static void \mbox{\hyperlink{classKite_1_1RoutingEvent_a7300c33d439e453796b170eeaf4bf04d}{set\+Stage}} (unsigned int)
\item 
static \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ \mbox{\hyperlink{classKite_1_1RoutingEvent_a131ef83c7a57a64aed4f698c0433dffa}{create}} (\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$, unsigned int mode=\mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a3980b02882c46c9bd4caf15040b85d1a}{Negociate}})
\end{DoxyCompactItemize}


\subsubsection{Detailed Description}
Atomic Placement Request for a \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}}. 

The track\+Frees attribute has to be reviewed not sure it\textquotesingle{}s still useful.

Cached key for stable sorting, see \mbox{\hyperlink{classKite_1_1RoutingEvent_1_1Key}{Routing\+Event\+::\+Key}}. 

\subsubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}\label{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!Mode@{Mode}}
\index{Mode@{Mode}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{Mode}{Mode}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}{Mode}}}

The working mode of the router, affect how events are to be handled. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{Negociate@{Negociate}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!Negociate@{Negociate}}}\mbox{\Hypertarget{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a3980b02882c46c9bd4caf15040b85d1a}\label{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a3980b02882c46c9bd4caf15040b85d1a}} 
Negociate&This is the normal mode of operation, topological modifications and ripup are enableds. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Pack@{Pack}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!Pack@{Pack}}}\mbox{\Hypertarget{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a5afe185b48d7acf013dd5ccadc5b2414}\label{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a5afe185b48d7acf013dd5ccadc5b2414}} 
Pack&First post-\/processing step. For each segment, tries to find a more compact position for a segment, but without riping any others. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Repair@{Repair}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!Repair@{Repair}}}\mbox{\Hypertarget{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a27b403019a93f9f127cf64a0688a8288}\label{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a27b403019a93f9f127cf64a0688a8288}} 
Repair&Second post-\/processing step, try to find a suitable location for a segment more aggressively. \\
\hline

\end{DoxyEnumFields}


\subsubsection{Member Function Documentation}
\mbox{\Hypertarget{classKite_1_1RoutingEvent_a110307ff26b264ea83f69aa1bab23626}\label{classKite_1_1RoutingEvent_a110307ff26b264ea83f69aa1bab23626}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Stage@{get\+Stage}}
\index{get\+Stage@{get\+Stage}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Stage()}{getStage()}}
{\footnotesize\ttfamily unsigned int get\+Stage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} The stage the router is in (see \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}{Routing\+Event\+::\+Mode}}). 

Referenced by Segment\+Action\+::do\+Action(), Manipulator\+::repack\+Perpandiculars(), Routing\+Event\+::reschedule(), Routing\+Event\+::revalidate(), Segment\+Fsm\+::\+Segment\+Fsm(), and Routing\+Event\+::set\+Axis\+Hint\+From\+Parent().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a91c8bc1a6bdb1b15c3c084ebfd38af47}\label{classKite_1_1RoutingEvent_a91c8bc1a6bdb1b15c3c084ebfd38af47}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Allocateds@{get\+Allocateds}}
\index{get\+Allocateds@{get\+Allocateds}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Allocateds()}{getAllocateds()}}
{\footnotesize\ttfamily size\+\_\+t get\+Allocateds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} The number of \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} currently allocateds. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a0a3993330692b7eb816e9c776d161ad1}\label{classKite_1_1RoutingEvent_a0a3993330692b7eb816e9c776d161ad1}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Processeds@{get\+Processeds}}
\index{get\+Processeds@{get\+Processeds}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Processeds()}{getProcesseds()}}
{\footnotesize\ttfamily size\+\_\+t get\+Processeds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} The number of \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} that have been processeds since the last call to \mbox{\hyperlink{classKite_1_1RoutingEvent_a6cf10bb4e4488948e4c616c55a8e6514}{Routing\+Event\+::reset\+Processeds()}}. 

Referenced by Negociate\+Window\+::print\+Statistics(), Routing\+Event\+::process(), and Routing\+Event\+Loop\+::update().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a6cf10bb4e4488948e4c616c55a8e6514}\label{classKite_1_1RoutingEvent_a6cf10bb4e4488948e4c616c55a8e6514}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!reset\+Processeds@{reset\+Processeds}}
\index{reset\+Processeds@{reset\+Processeds}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{reset\+Processeds()}{resetProcesseds()}}
{\footnotesize\ttfamily void reset\+Processeds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} Reset the number of processeds events. 

Referenced by Negociate\+Window\+::run().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a7300c33d439e453796b170eeaf4bf04d}\label{classKite_1_1RoutingEvent_a7300c33d439e453796b170eeaf4bf04d}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+Stage@{set\+Stage}}
\index{set\+Stage@{set\+Stage}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+Stage()}{setStage()}}
{\footnotesize\ttfamily unsigned int set\+Stage (\begin{DoxyParamCaption}\item[{unsigned int}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

Sets the router\textquotesingle{}s stage (see \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}{Routing\+Event\+::\+Mode}}). \mbox{\Hypertarget{classKite_1_1RoutingEvent_a131ef83c7a57a64aed4f698c0433dffa}\label{classKite_1_1RoutingEvent_a131ef83c7a57a64aed4f698c0433dffa}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!create@{create}}
\index{create@{create}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{create()}{create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$}]{element,  }\item[{unsigned int}]{mode = {\ttfamily \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911a3980b02882c46c9bd4caf15040b85d1a}{Negociate}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}


\begin{DoxyParams}{Parameters}
{\em element} & The element for which to create the event. \\
\hline
{\em mode} & The mode into which this event will be valid.\\
\hline
\end{DoxyParams}
\mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} constructor. 

Referenced by Routing\+Event\+Queue\+::add(), and Routing\+Event\+Queue\+::load().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ad4469c7fdb58a5f0bda8755302e37021}\label{classKite_1_1RoutingEvent_ad4469c7fdb58a5f0bda8755302e37021}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!clone@{clone}}
\index{clone@{clone}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{clone()}{clone()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ clone (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\begin{DoxyReturn}{Returns}
A clone of the event.
\end{DoxyReturn}
Cloning an event is slightly different from copying it (which is forbidden). There can be multiple events for one {\ttfamily element} but only one must be active at a time. This is a cheap way of implementing the rescheduling mechanism. The original event remains the active one, but it\textquotesingle{}s cloned flag is raised. The cloned event is created inactive and with a null {\itshape event\+Level}. 

Referenced by Routing\+Event\+::reschedule().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a3a80b6032f86a56bec74609034b3246f}\label{classKite_1_1RoutingEvent_a3a80b6032f86a56bec74609034b3246f}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!destroy@{destroy}}
\index{destroy@{destroy}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{destroy()}{destroy()}}
{\footnotesize\ttfamily void destroy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

The destructor. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a213956f734f660863e55f8f398cf932a}\label{classKite_1_1RoutingEvent_a213956f734f660863e55f8f398cf932a}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Cloned@{is\+Cloned}}
\index{is\+Cloned@{is\+Cloned}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Cloned()}{isCloned()}}
{\footnotesize\ttfamily bool is\+Cloned (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if this event has been cloned at least once. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a5bc2a781be2586924afce4e4a4ea6697}\label{classKite_1_1RoutingEvent_a5bc2a781be2586924afce4e4a4ea6697}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Valid@{is\+Valid}}
\index{is\+Valid@{is\+Valid}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Valid()}{isValid()}}
{\footnotesize\ttfamily bool is\+Valid (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if the cached informations from the {\itshape element} are valid (i.\+e. the element has not been changed). \mbox{\Hypertarget{classKite_1_1RoutingEvent_af8b3ab994396ccd821f529c5c02760a5}\label{classKite_1_1RoutingEvent_af8b3ab994396ccd821f529c5c02760a5}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Unimplemented@{is\+Unimplemented}}
\index{is\+Unimplemented@{is\+Unimplemented}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Unimplemented()}{isUnimplemented()}}
{\footnotesize\ttfamily bool is\+Unimplemented (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} {\bfseries true} if the event has tried to use an unimplemented feature. 

Referenced by Manipulator\+::can\+Ripup(), and Routing\+Event\+::reschedule().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a83943e04f0ee0a5a38208278b97fc780}\label{classKite_1_1RoutingEvent_a83943e04f0ee0a5a38208278b97fc780}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Processed@{is\+Processed}}
\index{is\+Processed@{is\+Processed}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Processed()}{isProcessed()}}
{\footnotesize\ttfamily bool is\+Processed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if the event has been processed. 

Referenced by Routing\+Event\+::process(), and Routing\+Event\+::reschedule().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a50607443b762961229119228be30c5ad}\label{classKite_1_1RoutingEvent_a50607443b762961229119228be30c5ad}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Disabled@{is\+Disabled}}
\index{is\+Disabled@{is\+Disabled}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Disabled()}{isDisabled()}}
{\footnotesize\ttfamily bool is\+Disabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if the event is {\bfseries not} the active one. It should be discarted by the algorithm. 

Referenced by Routing\+Event\+::process().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a6e38564fbae008179d865f844acba59a}\label{classKite_1_1RoutingEvent_a6e38564fbae008179d865f844acba59a}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Forced\+To\+Hint@{is\+Forced\+To\+Hint}}
\index{is\+Forced\+To\+Hint@{is\+Forced\+To\+Hint}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Forced\+To\+Hint()}{isForcedToHint()}}
{\footnotesize\ttfamily bool is\+Forced\+To\+Hint (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} the {\itshape element} must be placed exacltly on the given axis hint. \mbox{\Hypertarget{classKite_1_1RoutingEvent_ac460ce43ff71dcdf11091403c4ba9060}\label{classKite_1_1RoutingEvent_ac460ce43ff71dcdf11091403c4ba9060}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!is\+Riped\+By\+Local@{is\+Riped\+By\+Local}}
\index{is\+Riped\+By\+Local@{is\+Riped\+By\+Local}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{is\+Riped\+By\+Local()}{isRipedByLocal()}}
{\footnotesize\ttfamily bool is\+Riped\+By\+Local (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} the {\itshape element} (global) has been riped up to place a local one. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a150a8fe8d214e9de76153c1d20676a98}\label{classKite_1_1RoutingEvent_a150a8fe8d214e9de76153c1d20676a98}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Mode@{get\+Mode}}
\index{get\+Mode@{get\+Mode}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Mode()}{getMode()}}
{\footnotesize\ttfamily unsigned int get\+Mode (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the mode the event must be taken into account to. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a85d665e52caee3e804921f52417b0074}\label{classKite_1_1RoutingEvent_a85d665e52caee3e804921f52417b0074}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!can\+Minimize@{can\+Minimize}}
\index{can\+Minimize@{can\+Minimize}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{can\+Minimize()}{canMinimize()}}
{\footnotesize\ttfamily bool can\+Minimize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} the {\itshape element} could still be minimized. 

Referenced by Manipulator\+::minimize().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a40ec2b23684a0e6e6d7ac9783a269037}\label{classKite_1_1RoutingEvent_a40ec2b23684a0e6e6d7ac9783a269037}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+State@{get\+State}}
\index{get\+State@{get\+State}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+State()}{getState()}}
{\footnotesize\ttfamily unsigned int get\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} the mode the router is currently in. 

Referenced by Routing\+Event\+::is\+Unimplemented().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ade1e79e88bf4f4c173ffd083dd5470c9}\label{classKite_1_1RoutingEvent_ade1e79e88bf4f4c173ffd083dd5470c9}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Key@{get\+Key}}
\index{get\+Key@{get\+Key}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Key()}{getKey()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classKite_1_1RoutingEvent_1_1Key}{Key}} \& get\+Key (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The {\itshape key} to use in map \& queue for this event. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a506a4d1cef59fc35984c1c88e0c0f6df}\label{classKite_1_1RoutingEvent_a506a4d1cef59fc35984c1c88e0c0f6df}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Segment@{get\+Segment}}
\index{get\+Segment@{get\+Segment}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Segment()}{getSegment()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ get\+Segment (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The associated segment. 

Referenced by Segment\+Fsm\+::conflict\+Solve\+By\+History(), Segment\+Fsm\+::conflict\+Solve\+By\+Placeds(), Segment\+Fsm\+::desaturate(), Segment\+Fsm\+::do\+Actions(), Segment\+Fsm\+::insert\+In\+Track(), Manipulator\+::ripup\+Perpandiculars(), Segment\+Fsm\+::\+Segment\+Fsm(), Segment\+Fsm\+::slacken\+Topology(), and Segment\+Fsm\+::solve\+Full\+Blockages().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ab7d24e13f7b2c62cedce1fda2da7b7f5}\label{classKite_1_1RoutingEvent_ab7d24e13f7b2c62cedce1fda2da7b7f5}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Perpandiculars@{get\+Perpandiculars}}
\index{get\+Perpandiculars@{get\+Perpandiculars}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Perpandiculars()}{getPerpandiculars()}}
{\footnotesize\ttfamily const vector$<$ \mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$ $>$ \& get\+Perpandiculars (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} A vector of cached perpandiculars to the associated segment. 

Referenced by Manipulator\+::minimize(), Manipulator\+::repack\+Perpandiculars(), and Manipulator\+::ripup\+Perpandiculars().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ab94e1b7e323c5344019d6ea545e3ea05}\label{classKite_1_1RoutingEvent_ab94e1b7e323c5344019d6ea545e3ea05}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Axis\+Hint@{get\+Axis\+Hint}}
\index{get\+Axis\+Hint@{get\+Axis\+Hint}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Axis\+Hint()}{getAxisHint()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Axis\+Hint (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The preferred position for the segment axis. 

Referenced by Routing\+Event\+::get\+Axis\+Weight(), Routing\+Event\+::revalidate(), Manipulator\+::ripple(), and Segment\+Fsm\+::\+Segment\+Fsm().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ad1c8d7db376d2e0b99eb1f54df29dc71}\label{classKite_1_1RoutingEvent_ad1c8d7db376d2e0b99eb1f54df29dc71}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Axis\+History@{get\+Axis\+History}}
\index{get\+Axis\+History@{get\+Axis\+History}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Axis\+History()}{getAxisHistory()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Axis\+History (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The previous position of the segment axis (before it\textquotesingle{}s current position). \mbox{\Hypertarget{classKite_1_1RoutingEvent_aef5716e4b434aae813b1067a908f8b1a}\label{classKite_1_1RoutingEvent_aef5716e4b434aae813b1067a908f8b1a}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Axis\+Weight@{get\+Axis\+Weight}}
\index{get\+Axis\+Weight@{get\+Axis\+Weight}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Axis\+Weight()}{getAxisWeight()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Axis\+Weight (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{axis }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The distance between {\ttfamily axis} and the preferred position. 

Referenced by Segment\+Fsm\+::\+Segment\+Fsm().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a1bea8aed79a2ac4c726e49b93af3cd37}\label{classKite_1_1RoutingEvent_a1bea8aed79a2ac4c726e49b93af3cd37}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Constraints@{get\+Constraints}}
\index{get\+Constraints@{get\+Constraints}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Constraints()}{getConstraints()}}
{\footnotesize\ttfamily const \textbf{ Interval} \& get\+Constraints (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The range of legal positions for the axis. 

Referenced by Manipulator\+::minimize(), Manipulator\+::ripup\+Perpandiculars(), and Segment\+Fsm\+::\+Segment\+Fsm().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a7dc0bafe113b8ec0c143ae4644ac79d4}\label{classKite_1_1RoutingEvent_a7dc0bafe113b8ec0c143ae4644ac79d4}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Optimal@{get\+Optimal}}
\index{get\+Optimal@{get\+Optimal}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Optimal()}{getOptimal()}}
{\footnotesize\ttfamily const \textbf{ Interval} \& get\+Optimal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The range of positions for the optimal axis (cached). 

Referenced by Segment\+Fsm\+::\+Segment\+Fsm().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a391dd4b2a826c1d4713ef24ba25f687a}\label{classKite_1_1RoutingEvent_a391dd4b2a826c1d4713ef24ba25f687a}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Priority@{get\+Priority}}
\index{get\+Priority@{get\+Priority}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Priority()}{getPriority()}}
{\footnotesize\ttfamily unsigned int get\+Priority (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The priority of the event, it quantify the degree of freedom of the segment. Currently it\textquotesingle{}s computed from the length of the segment and it\textquotesingle{}s slack\+: \[ priority = (slack(segment)+1.0) \times (length(segment)+1.0) \] A high priority means that the segment will be harder to place thus it will be scheduled first. With this function, longer segments will be placed first. 

Referenced by Routing\+Event\+::process().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_acd1128e75a441b654e6d881c495db4f7}\label{classKite_1_1RoutingEvent_acd1128e75a441b654e6d881c495db4f7}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Tracks\+Nb@{get\+Tracks\+Nb}}
\index{get\+Tracks\+Nb@{get\+Tracks\+Nb}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Tracks\+Nb()}{getTracksNb()}}
{\footnotesize\ttfamily unsigned int get\+Tracks\+Nb (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The number of tracks avalaibles for the segment to be placed. 

Referenced by Segment\+Fsm\+::\+Segment\+Fsm().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a00f02910915e7deb857f023e5d584c08}\label{classKite_1_1RoutingEvent_a00f02910915e7deb857f023e5d584c08}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Insert\+State@{get\+Insert\+State}}
\index{get\+Insert\+State@{get\+Insert\+State}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Insert\+State()}{getInsertState()}}
{\footnotesize\ttfamily unsigned int get\+Insert\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyReturn}{Returns}
The kind of track insertion that will be intended. It\textquotesingle{}s a counter whose values have the following meaning\+:
\begin{DoxyItemize}
\item {\bfseries 1} \+: normal insert.
\item {\bfseries 2} \+: shrink the segment to it\textquotesingle{}s minimum before inserting.
\item {\bfseries 3} \+: attempt to ripup conflicting others before inserting. 
\end{DoxyItemize}
\end{DoxyReturn}


Referenced by Segment\+Fsm\+::insert\+In\+Track().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_aebcd2884d8fa70256b0041b29e14404d}\label{classKite_1_1RoutingEvent_aebcd2884d8fa70256b0041b29e14404d}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!get\+Event\+Level@{get\+Event\+Level}}
\index{get\+Event\+Level@{get\+Event\+Level}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{get\+Event\+Level()}{getEventLevel()}}
{\footnotesize\ttfamily unsigned int get\+Event\+Level (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} The event level of the event, used to tweak the order inside the event queue. It differs from the priority in the sense that it isn\textquotesingle{}t a topologicaly based value, but manipulated by the algorithm. 

Referenced by Routing\+Event\+::process().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a5bd93abe1416952ace15a98dbeeed124}\label{classKite_1_1RoutingEvent_a5bd93abe1416952ace15a98dbeeed124}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!revalidate@{revalidate}}
\index{revalidate@{revalidate}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{revalidate()}{revalidate()}}
{\footnotesize\ttfamily void revalidate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Perform an event revalidation. 

Referenced by Segment\+Fsm\+::\+Segment\+Fsm(), and Routing\+Event\+::update\+Key().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a14468bece068cbc5221f057226ee8955}\label{classKite_1_1RoutingEvent_a14468bece068cbc5221f057226ee8955}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!update\+Key@{update\+Key}}
\index{update\+Key@{update\+Key}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{update\+Key()}{updateKey()}}
{\footnotesize\ttfamily void update\+Key (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Update the key with the new values from the event, the key {\itshape must} not be inserted in the queue when this method is called. \mbox{\Hypertarget{classKite_1_1RoutingEvent_a6add4f520081c698421481bf8fe0ad1f}\label{classKite_1_1RoutingEvent_a6add4f520081c698421481bf8fe0ad1f}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!process@{process}}
\index{process@{process}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{process()}{process()}}
{\footnotesize\ttfamily void process (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1RoutingEventQueue}{Routing\+Event\+Queue}} \&}]{queue,  }\item[{\mbox{\hyperlink{classKite_1_1RoutingEventHistory}{Routing\+Event\+History}} \&}]{history,  }\item[{\mbox{\hyperlink{classKite_1_1RoutingEventLoop}{Routing\+Event\+Loop}} \&}]{loop }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em queue} & The main event queue. \\
\hline
{\em history} & The event\textquotesingle{}s history list. \\
\hline
{\em loop} & The loop detector.\\
\hline
\end{DoxyParams}
Process the event, that is\+:
\begin{DoxyItemize}
\item First, check if there is no looping, if any, do not process the event but dicard it (marked as unimplemented).
\item Second, attempt to place the associated segment. Pass it to the relevant function, according to the router\textquotesingle{}s mode ({\ttfamily \+\_\+process\+Negociate()}, {\ttfamily process\+Pack()} or {\ttfamily \+\_\+process\+Repair()} ). Once processed, the event is added to both {\ttfamily history} (for the record) and {\ttfamily loop} to check if we are not looping. 
\end{DoxyItemize}\mbox{\Hypertarget{classKite_1_1RoutingEvent_ae2eddb4497661b6319616a70c4acd165}\label{classKite_1_1RoutingEvent_ae2eddb4497661b6319616a70c4acd165}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+Segment@{set\+Segment}}
\index{set\+Segment@{set\+Segment}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+Segment()}{setSegment()}}
{\footnotesize\ttfamily void set\+Segment (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1TrackElement}{Track\+Element}} $\ast$}]{element }\end{DoxyParamCaption})}

Change the associated {\ttfamily segment}. Used only by \mbox{\hyperlink{classKite_1_1TrackSegment_acc245ce084989d1c34816d0e61b9d510}{Track\+Segment\+::swap\+Track()}}. 

Referenced by Track\+Segment\+::swap\+Track().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_abf2d02f18f96183fc6e78f3e6dc8cbf6}\label{classKite_1_1RoutingEvent_abf2d02f18f96183fc6e78f3e6dc8cbf6}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!reschedule@{reschedule}}
\index{reschedule@{reschedule}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{reschedule()}{reschedule()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classKite_1_1RoutingEvent}{Routing\+Event}} $\ast$ reschedule (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKite_1_1RoutingEventQueue}{Routing\+Event\+Queue}} \&}]{queue,  }\item[{unsigned int}]{event\+Level }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
The newly reinserted event. Depending on the cases it could be itself.
\end{DoxyReturn}
Insert or reinsert an event in the scheduler. The {\ttfamily event\+Level} parameter only allows to increase the level (if it is less than the current level of the event, it will be ignored).

{\bfseries Cloning Management.} As an event could be cloned, if we try to re-\/insert a disabled original, we must first lookup the currently cloned active event. This is done through the associated {\ttfamily segment} which must always be associated with the active event (if any).

{\bfseries Unimplemented Protection.} If the unimplemented flag is set the reschedule is cancelled ({\ttfamily N\+U\+LL} is returned).

{\bfseries Unprocessed Event.} The event is still in queue, waiting to be processed, then just repush it in the queue with it\textquotesingle{}s new level.

{\bfseries Processed Event.} Clone the already processed one, activate it and push it on the queue.

{\bfseries Router\textquotesingle{}s Mode.} The mode is also updated. 

Referenced by Segment\+Action\+::do\+Action(), and Routing\+Event\+::reschedule().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a85982827650655ef9d6e1206874ead69}\label{classKite_1_1RoutingEvent_a85982827650655ef9d6e1206874ead69}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+Mode@{set\+Mode}}
\index{set\+Mode@{set\+Mode}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+Mode()}{setMode()}}
{\footnotesize\ttfamily void set\+Mode (\begin{DoxyParamCaption}\item[{unsigned int}]{mode }\end{DoxyParamCaption})}

Set the mode in which the event must be processed (see \mbox{\hyperlink{classKite_1_1RoutingEvent_a46c8a310cf4c094f8c80e1cb8dc1f911}{Routing\+Event\+::\+Mode}}). 

Referenced by Segment\+Action\+::do\+Action(), and Routing\+Event\+::reschedule().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_af7ce7f73feb28f3df8f3180632a2f731}\label{classKite_1_1RoutingEvent_af7ce7f73feb28f3df8f3180632a2f731}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+State@{set\+State}}
\index{set\+State@{set\+State}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+State()}{setState()}}
{\footnotesize\ttfamily void set\+State (\begin{DoxyParamCaption}\item[{unsigned int}]{state }\end{DoxyParamCaption})}

Proxy mutator for \mbox{\hyperlink{classKite_1_1DataNegociate_aafc8cd0dcd351625a12904bed7d5a7d1}{Data\+Negociate\+::set\+State()}}. 

Referenced by Routing\+Event\+::process().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a02a3f1f2801d4ebbbe676e062878faae}\label{classKite_1_1RoutingEvent_a02a3f1f2801d4ebbbe676e062878faae}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+Axis\+Hint\+From\+Parent@{set\+Axis\+Hint\+From\+Parent}}
\index{set\+Axis\+Hint\+From\+Parent@{set\+Axis\+Hint\+From\+Parent}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+Axis\+Hint\+From\+Parent()}{setAxisHintFromParent()}}
{\footnotesize\ttfamily void set\+Axis\+Hint\+From\+Parent (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Sets the axis hint from it\textquotesingle{}s parent segment. The parentage is found through the \mbox{\hyperlink{classKite_1_1TrackSegment}{Track\+Segment}} parentage. 

Referenced by Routing\+Event\+::revalidate().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a86c4b1b3d406c12667188ad44ce366db}\label{classKite_1_1RoutingEvent_a86c4b1b3d406c12667188ad44ce366db}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!inc\+Insert\+State@{inc\+Insert\+State}}
\index{inc\+Insert\+State@{inc\+Insert\+State}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{inc\+Insert\+State()}{incInsertState()}}
{\footnotesize\ttfamily void inc\+Insert\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Increment the insertion state.

{\bfseries See also\+:}~ \mbox{\hyperlink{classKite_1_1RoutingEvent_a00f02910915e7deb857f023e5d584c08}{Routing\+Event\+::get\+Insert\+State()}}. 

Referenced by Segment\+Fsm\+::insert\+In\+Track().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_ae35f271a106f6c6a6039e4a6f8bf4009}\label{classKite_1_1RoutingEvent_ae35f271a106f6c6a6039e4a6f8bf4009}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!reset\+Insert\+State@{reset\+Insert\+State}}
\index{reset\+Insert\+State@{reset\+Insert\+State}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{reset\+Insert\+State()}{resetInsertState()}}
{\footnotesize\ttfamily void reset\+Insert\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Reset the insertion state.

{\bfseries See also\+:}~ \mbox{\hyperlink{classKite_1_1RoutingEvent_a00f02910915e7deb857f023e5d584c08}{Routing\+Event\+::get\+Insert\+State()}}. 

Referenced by Segment\+Fsm\+::slacken\+Topology().

\mbox{\Hypertarget{classKite_1_1RoutingEvent_a70a9ecd62b806eff001aa602132cc630}\label{classKite_1_1RoutingEvent_a70a9ecd62b806eff001aa602132cc630}} 
\index{Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}!set\+Event\+Level@{set\+Event\+Level}}
\index{set\+Event\+Level@{set\+Event\+Level}!Kite\+::\+Routing\+Event@{Kite\+::\+Routing\+Event}}
\paragraph{\texorpdfstring{set\+Event\+Level()}{setEventLevel()}}
{\footnotesize\ttfamily void set\+Event\+Level (\begin{DoxyParamCaption}\item[{unsigned int}]{level }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Set the event level (user-\/controlled re-\/ordering). 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Routing\+Event.\+h\item 
Routing\+Event.\+cpp\item 
Routing\+Event.\+dox\end{DoxyCompactItemize}
