2018-10-18 11:10:01 -05:00
\hypertarget { classKite_ 1_ 1RoutingEvent} { } \subsection { Routing\+ Event Class Reference}
\label { classKite_ 1_ 1RoutingEvent} \index { Routing\+ Event@{ Routing\+ Event} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Atomic Placement Request for a \mbox { \hyperlink { classKite_ 1_ 1TrackSegment} { Track\+ Segment} } .
2018-06-06 11:42:26 -05:00
\subsubsection * { Classes}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
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}
2018-06-06 11:42:26 -05:00
\subsubsection * { Public Types}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
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
2018-06-06 11:42:26 -05:00
\}
\end { DoxyCompactItemize}
\subsubsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKite_ 1_ 1RoutingEvent} { Routing\+ Event} } $ \ast $ \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ad4469c7fdb58a5f0bda8755302e37021} { clone} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a3a80b6032f86a56bec74609034b3246f} { destroy} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a213956f734f660863e55f8f398cf932a} { is\+ Cloned} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a5bc2a781be2586924afce4e4a4ea6697} { is\+ Valid} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ af8b3ab994396ccd821f529c5c02760a5} { is\+ Unimplemented} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a83943e04f0ee0a5a38208278b97fc780} { is\+ Processed} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a50607443b762961229119228be30c5ad} { is\+ Disabled} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a6e38564fbae008179d865f844acba59a} { is\+ Forced\+ To\+ Hint} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ac460ce43ff71dcdf11091403c4ba9060} { is\+ Riped\+ By\+ Local} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a150a8fe8d214e9de76153c1d20676a98} { get\+ Mode} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a85d665e52caee3e804921f52417b0074} { can\+ Minimize} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a40ec2b23684a0e6e6d7ac9783a269037} { get\+ State} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ 1_ 1Key} { Key} } \& \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ade1e79e88bf4f4c173ffd083dd5470c9} { get\+ Key} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKite_ 1_ 1TrackElement} { Track\+ Element} } $ \ast $ \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a506a4d1cef59fc35984c1c88e0c0f6df} { get\+ Segment} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const vector$ < $ \mbox { \hyperlink { classKite_ 1_ 1TrackElement} { Track\+ Element} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ab7d24e13f7b2c62cedce1fda2da7b7f5} { get\+ Perpandiculars} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ab94e1b7e323c5344019d6ea545e3ea05} { get\+ Axis\+ Hint} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ad1c8d7db376d2e0b99eb1f54df29dc71} { get\+ Axis\+ History} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
long \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ aef5716e4b434aae813b1067a908f8b1a} { get\+ Axis\+ Weight} } (\textbf { Db\+ U\+ ::\+ Unit} ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Interval} \& \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a1bea8aed79a2ac4c726e49b93af3cd37} { get\+ Constraints} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Interval} \& \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a7dc0bafe113b8ec0c143ae4644ac79d4} { get\+ Optimal} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a391dd4b2a826c1d4713ef24ba25f687a} { get\+ Priority} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ acd1128e75a441b654e6d881c495db4f7} { get\+ Tracks\+ Nb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a00f02910915e7deb857f023e5d584c08} { get\+ Insert\+ State} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ aebcd2884d8fa70256b0041b29e14404d} { get\+ Event\+ Level} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a5bd93abe1416952ace15a98dbeeed124} { revalidate} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a14468bece068cbc5221f057226ee8955} { update\+ Key} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
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} } \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ae2eddb4497661b6319616a70c4acd165} { set\+ Segment} } (\mbox { \hyperlink { classKite_ 1_ 1TrackElement} { Track\+ Element} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\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)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a85982827650655ef9d6e1206874ead69} { set\+ Mode} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ af7ce7f73feb28f3df8f3180632a2f731} { set\+ State} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a02a3f1f2801d4ebbbe676e062878faae} { set\+ Axis\+ Hint\+ From\+ Parent} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a86c4b1b3d406c12667188ad44ce366db} { inc\+ Insert\+ State} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ ae35f271a106f6c6a6039e4a6f8bf4009} { reset\+ Insert\+ State} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a70a9ecd62b806eff001aa602132cc630} { set\+ Event\+ Level} } (unsigned int)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsubsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static unsigned int \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a110307ff26b264ea83f69aa1bab23626} { get\+ Stage} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a91c8bc1a6bdb1b15c3c084ebfd38af47} { get\+ Allocateds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a0a3993330692b7eb816e9c776d161ad1} { get\+ Processeds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a6cf10bb4e4488948e4c616c55a8e6514} { reset\+ Processeds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a7300c33d439e453796b170eeaf4bf04d} { set\+ Stage} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
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} } )
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsubsection { Detailed Description}
2018-10-18 11:10:01 -05:00
Atomic Placement Request for a \mbox { \hyperlink { classKite_ 1_ 1TrackSegment} { Track\+ Segment} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The track\+ Frees attribute has to be reviewed not sure it\textquotesingle { } s still useful.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Cached key for stable sorting, see \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ 1_ 1Key} { Routing\+ Event\+ ::\+ Key} } .
2018-06-06 11:42:26 -05:00
\subsubsection { Member Enumeration Documentation}
2018-10-18 11:10:01 -05:00
\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}
2018-06-06 11:42:26 -05:00
\subsubsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\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]} }
2018-06-06 11:42:26 -05:00
\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}
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKite_ 1_ 1RoutingEvent} { Routing\+ Event} } constructor.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
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}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
A clone of the event.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
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]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The kind of track insertion that will be intended. It\textquotesingle { } s a counter whose values have the following meaning\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\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.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Referenced by Segment\+ Fsm\+ ::insert\+ In\+ Track().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\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]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \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} )}
2018-06-06 11:42:26 -05:00
Perform an event revalidation.
2018-10-18 11:10:01 -05:00
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} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em queue} & The main event queue. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em history} & The event\textquotesingle { } s history list. \\
2018-06-06 11:42:26 -05:00
\hline
{ \em loop} & The loop detector.\\
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
Process the event, that is\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item First, check if there is no looping, if any, do not process the event but dicard it (marked as unimplemented).
2018-10-18 11:10:01 -05:00
\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} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
The newly reinserted event. Depending on the cases it could be itself.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
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).
2018-06-06 11:42:26 -05:00
{ \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).
2018-10-18 11:10:01 -05:00
{ \bfseries Unimplemented Protection.} If the unimplemented flag is set the reschedule is cancelled ({ \ttfamily N\+ U\+ LL} is returned).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \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.
2018-06-06 11:42:26 -05:00
{ \bfseries Processed Event.} Clone the already processed one, activate it and push it on the queue.
2018-10-18 11:10:01 -05:00
{ \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]} }
2018-06-06 11:42:26 -05:00
Increment the insertion state.
2018-10-18 11:10:01 -05:00
{ \bfseries See also\+ :} ~ \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a00f02910915e7deb857f023e5d584c08} { Routing\+ Event\+ ::get\+ Insert\+ State()} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
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]} }
2018-06-06 11:42:26 -05:00
Reset the insertion state.
2018-10-18 11:10:01 -05:00
{ \bfseries See also\+ :} ~ \mbox { \hyperlink { classKite_ 1_ 1RoutingEvent_ a00f02910915e7deb857f023e5d584c08} { Routing\+ Event\+ ::get\+ Insert\+ State()} } .
Referenced by Segment\+ Fsm\+ ::slacken\+ Topology().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\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]} }
2018-06-06 11:42:26 -05:00
Set the event level (user-\/ controlled re-\/ ordering).
2018-10-18 11:10:01 -05:00
The documentation for this class was generated from the following files\+ :\begin { DoxyCompactItemize}
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
Routing\+ Event.\+ h\item
Routing\+ Event.\+ cpp\item
Routing\+ Event.\+ dox\end { DoxyCompactItemize}