558 lines
41 KiB
TeX
558 lines
41 KiB
TeX
\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}
|