\hypertarget{classCRL_1_1AllianceFramework}{}\section{C\+RL\+:\+:Alliance\+Framework Class Reference}
\label{classCRL_1_1AllianceFramework}\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}


A Framework to work with Alliance formats.  




Inherits \textbf{ Hurricane\+::\+D\+Bo}.

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432}{Instances\+Count\+Flags}} \{ \newline
\mbox{\hyperlink{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a3c65ebdaecc4b34b54a01ff3a5c3195a}{Recursive}} = (1$<$$<$0), 
\newline
\mbox{\hyperlink{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a4a10630340ffb5b0aa9983f8b7f4cbe0}{Ignore\+Feeds}} = (1$<$$<$1)
 \}
\item 
enum \mbox{\hyperlink{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25}{Library\+Flags}} \{ \newline
\mbox{\hyperlink{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25ade58398b3ec849dc3aedb6a0812fbc7a}{Create\+Library}} = (1$<$$<$0)
, \newline
\mbox{\hyperlink{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25a8d9678631764327cbfe81f8184fa9e05}{Has\+Catalog}} = (1$<$$<$2)
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
string \mbox{\hyperlink{classCRL_1_1AllianceFramework_ab142ba712b0e6388e45bb8d2fa05d93e}{get\+Print}} () const
\item 
bool \mbox{\hyperlink{classCRL_1_1AllianceFramework_adc7dc5aa7e84b1fd94bc4a29bc6260e1}{is\+P\+O\+W\+ER}} (const string \&name)
\item 
bool \mbox{\hyperlink{classCRL_1_1AllianceFramework_a0dcd1a667226f37353fdf0ea232d9c5d}{is\+G\+R\+O\+U\+ND}} (const string \&name)
\item 
bool \mbox{\hyperlink{classCRL_1_1AllianceFramework_a79ae573b6b685c1796e29ccc15c1c146}{is\+C\+L\+O\+CK}} (const string \&name)
\item 
bool \mbox{\hyperlink{classCRL_1_1AllianceFramework_aa41d24d292c19624236fff250a28b102}{is\+B\+L\+O\+C\+K\+A\+GE}} (const string \&name)
\item 
bool \mbox{\hyperlink{classCRL_1_1AllianceFramework_a0c48b5b15d769c6f17c4098dcaf46bcd}{is\+Pad}} (const string \&name)
\item 
\mbox{\hyperlink{classCRL_1_1Environment}{Environment}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a8e044592d2ceaea0060aec5dc5cc6900}{get\+Environment}} ()
\item 
\mbox{\hyperlink{classCRL_1_1Catalog}{Catalog}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a036bd6fa8f837c81f60b9d424f817add}{get\+Catalog}} ()
\item 
const \textbf{ Name} \& \mbox{\hyperlink{classCRL_1_1AllianceFramework_a4f1d2d34c254ac596e8c4a408ef6ba43}{get\+Parent\+Library\+Name}} () const
\item 
\textbf{ Library} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_afe822e9e04b613862aec5066743e1ffd}{get\+Parent\+Library}} ()
\item 
\textbf{ Library} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_ab6f9ac0f07b20c2444b13ef8bc55c9ea}{get\+Library}} (unsigned int index)
\item 
\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a4085f3bc96ca5e4bf2d41a4ada9658f2}{get\+Alliance\+Library}} (unsigned int index)
\item 
\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a8e007b3f2ac45feec2907f77530a718c}{get\+Alliance\+Library}} (\textbf{ Library} $\ast$)
\item 
\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a4efc06e6a6d5413398946453c3fd6649}{create\+Library}} (const string \&path, unsigned int flags, string lib\+Name=\char`\"{}\char`\"{})
\item 
void \mbox{\hyperlink{classCRL_1_1AllianceFramework_a5e5a3d137a2c141bf8984877b7f7d18a}{save\+Library}} (\textbf{ Library} $\ast$)
\item 
void \mbox{\hyperlink{classCRL_1_1AllianceFramework_afe7a103d54e865511fd55af90eddcf4e}{save\+Library}} (\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$)
\item 
\mbox{\hyperlink{classCRL_1_1RoutingGauge}{Routing\+Gauge}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_ae102d655820c5d0a29a0200c5e83d42c}{get\+Routing\+Gauge}} (const \textbf{ Name} \&name=\char`\"{}\char`\"{})
\item 
const \textbf{ Name} \mbox{\hyperlink{classCRL_1_1AllianceFramework_ae2bf20fc92a4684bebdab666c68c8aab}{get\+Default\+C\+G\+Pin\+Layer\+Name}} () const
\item 
void \mbox{\hyperlink{classCRL_1_1AllianceFramework_ae182fd150c695fd24c1b10ddbc377b32}{add\+Routing\+Gauge}} (\mbox{\hyperlink{classCRL_1_1RoutingGauge}{Routing\+Gauge}} $\ast$)
\item 
void \mbox{\hyperlink{classCRL_1_1AllianceFramework_aab16db33a0ce2e3bce5739f7cadb3d5a}{add\+Cell\+Gauge}} (Cell\+Gauge $\ast$)
\item 
\textbf{ Cell} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a329d04c188668968308108523d16e2be}{get\+Cell}} (const string \&name, unsigned int mode, unsigned int depth=(unsigned int) -\/1)
\item 
\textbf{ Cell} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_ac4381ad0c3799d584ef3ea160846e2bb}{create\+Cell}} (const string \&name, \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$library=N\+U\+LL)
\item 
void \mbox{\hyperlink{classCRL_1_1AllianceFramework_abb34a606c7cd21638b4439701a8dcef9}{save\+Cell}} (\textbf{ Cell} $\ast$, unsigned int mode)
\item 
unsigned int \mbox{\hyperlink{classCRL_1_1AllianceFramework_a2e43b1928a05eea4b2dc1fe0757e4865}{load\+Library\+Cells}} (\textbf{ Library} $\ast$)
\item 
unsigned int \mbox{\hyperlink{classCRL_1_1AllianceFramework_adc8acedeb9daa37b4ab2dee0717835fa}{load\+Library\+Cells}} (const \textbf{ Name} \&)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a8cff32ced8cc163cadca885d8ed8a5fc}{create}} (unsigned long flags=No\+Flags)
\item 
static \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}} $\ast$ \mbox{\hyperlink{classCRL_1_1AllianceFramework_a976479af696a86c998c10d9d2604839d}{get}} ()
\item 
static size\+\_\+t \mbox{\hyperlink{classCRL_1_1AllianceFramework_a95aa8c6b8ab3f995daf22a0317324933}{get\+Instances\+Count}} (\textbf{ Cell} $\ast$, unsigned int flags)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
A Framework to work with Alliance formats. 

The \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}} is also registered as \textbf{ Hurricane\+::\+Property} on the \textbf{ Hurricane\+::\+Data\+Base}. 

\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432}\label{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Instances\+Count\+Flags@{Instances\+Count\+Flags}}
\index{Instances\+Count\+Flags@{Instances\+Count\+Flags}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{Instances\+Count\+Flags}{InstancesCountFlags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432}{C\+R\+L\+::\+Alliance\+Framework\+::\+Instances\+Count\+Flags}}}

Flags to control the way \mbox{\hyperlink{classCRL_1_1AllianceFramework_a95aa8c6b8ab3f995daf22a0317324933}{Alliance\+Framework\+::get\+Instances\+Count()}} work. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{Recursive@{Recursive}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Recursive@{Recursive}}}\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a3c65ebdaecc4b34b54a01ff3a5c3195a}\label{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a3c65ebdaecc4b34b54a01ff3a5c3195a}} 
Recursive&Account the instances down to the leaf cells. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Ignore\+Feeds@{Ignore\+Feeds}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Ignore\+Feeds@{Ignore\+Feeds}}}\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a4a10630340ffb5b0aa9983f8b7f4cbe0}\label{classCRL_1_1AllianceFramework_a03ef94e043d2d25eb7a6a5f1ae176432a4a10630340ffb5b0aa9983f8b7f4cbe0}} 
Ignore\+Feeds&Don\textquotesingle{}t count feed cells. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25}\label{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Library\+Flags@{Library\+Flags}}
\index{Library\+Flags@{Library\+Flags}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{Library\+Flags}{LibraryFlags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25}{C\+R\+L\+::\+Alliance\+Framework\+::\+Library\+Flags}}}

Flags to control Library creation. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{Create\+Library@{Create\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Create\+Library@{Create\+Library}}}\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25ade58398b3ec849dc3aedb6a0812fbc7a}\label{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25ade58398b3ec849dc3aedb6a0812fbc7a}} 
Create\+Library&Ask to create a library if it doesn\textquotesingle{}t exists. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Has\+Catalog@{Has\+Catalog}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!Has\+Catalog@{Has\+Catalog}}}\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25a8d9678631764327cbfe81f8184fa9e05}\label{classCRL_1_1AllianceFramework_a0ec1cd09dec34dfecfec22927b92cc25a8d9678631764327cbfe81f8184fa9e05}} 
Has\+Catalog&This flag is set if the C\+A\+T\+A\+L\+OG file metadata is present in the library directory. \\
\hline

\end{DoxyEnumFields}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{classCRL_1_1AllianceFramework_a8cff32ced8cc163cadca885d8ed8a5fc}\label{classCRL_1_1AllianceFramework_a8cff32ced8cc163cadca885d8ed8a5fc}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!create@{create}}
\index{create@{create}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{create()}{create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::create (\begin{DoxyParamCaption}\item[{unsigned long}]{flags = {\ttfamily NoFlags} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} The \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}} singleton. This function has no effect if the singleton has already been created. It is indeed an alias over \mbox{\hyperlink{classCRL_1_1AllianceFramework_a976479af696a86c998c10d9d2604839d}{Alliance\+Framework\+::get()}}. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a976479af696a86c998c10d9d2604839d}\label{classCRL_1_1AllianceFramework_a976479af696a86c998c10d9d2604839d}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get@{get}}
\index{get@{get}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get()}{get()}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::get (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} the singleton, create it if need be. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ab142ba712b0e6388e45bb8d2fa05d93e}\label{classCRL_1_1AllianceFramework_ab142ba712b0e6388e45bb8d2fa05d93e}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Print@{get\+Print}}
\index{get\+Print@{get\+Print}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Print()}{getPrint()}}
{\footnotesize\ttfamily string C\+R\+L\+::\+Alliance\+Framework\+::get\+Print (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} A nicely formatted string displaying the configuration of the \mbox{\hyperlink{classCRL_1_1AllianceFramework}{Alliance\+Framework}}, for ttys. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_adc7dc5aa7e84b1fd94bc4a29bc6260e1}\label{classCRL_1_1AllianceFramework_adc7dc5aa7e84b1fd94bc4a29bc6260e1}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!is\+P\+O\+W\+ER@{is\+P\+O\+W\+ER}}
\index{is\+P\+O\+W\+ER@{is\+P\+O\+W\+ER}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{is\+P\+O\+W\+E\+R()}{isPOWER()}}
{\footnotesize\ttfamily bool C\+R\+L\+::\+Alliance\+Framework\+::is\+P\+O\+W\+ER (\begin{DoxyParamCaption}\item[{const string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if {\ttfamily name} is recognized as a power net name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a0dcd1a667226f37353fdf0ea232d9c5d}\label{classCRL_1_1AllianceFramework_a0dcd1a667226f37353fdf0ea232d9c5d}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!is\+G\+R\+O\+U\+ND@{is\+G\+R\+O\+U\+ND}}
\index{is\+G\+R\+O\+U\+ND@{is\+G\+R\+O\+U\+ND}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{is\+G\+R\+O\+U\+N\+D()}{isGROUND()}}
{\footnotesize\ttfamily bool C\+R\+L\+::\+Alliance\+Framework\+::is\+G\+R\+O\+U\+ND (\begin{DoxyParamCaption}\item[{const string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if {\ttfamily name} is recognized as a ground net name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a79ae573b6b685c1796e29ccc15c1c146}\label{classCRL_1_1AllianceFramework_a79ae573b6b685c1796e29ccc15c1c146}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!is\+C\+L\+O\+CK@{is\+C\+L\+O\+CK}}
\index{is\+C\+L\+O\+CK@{is\+C\+L\+O\+CK}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{is\+C\+L\+O\+C\+K()}{isCLOCK()}}
{\footnotesize\ttfamily bool C\+R\+L\+::\+Alliance\+Framework\+::is\+C\+L\+O\+CK (\begin{DoxyParamCaption}\item[{const string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if {\ttfamily name} is recognized as a clock net name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_aa41d24d292c19624236fff250a28b102}\label{classCRL_1_1AllianceFramework_aa41d24d292c19624236fff250a28b102}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!is\+B\+L\+O\+C\+K\+A\+GE@{is\+B\+L\+O\+C\+K\+A\+GE}}
\index{is\+B\+L\+O\+C\+K\+A\+GE@{is\+B\+L\+O\+C\+K\+A\+GE}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{is\+B\+L\+O\+C\+K\+A\+G\+E()}{isBLOCKAGE()}}
{\footnotesize\ttfamily bool C\+R\+L\+::\+Alliance\+Framework\+::is\+B\+L\+O\+C\+K\+A\+GE (\begin{DoxyParamCaption}\item[{const string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if {\ttfamily name} is recognized as a blockage net name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a0c48b5b15d769c6f17c4098dcaf46bcd}\label{classCRL_1_1AllianceFramework_a0c48b5b15d769c6f17c4098dcaf46bcd}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!is\+Pad@{is\+Pad}}
\index{is\+Pad@{is\+Pad}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{is\+Pad()}{isPad()}}
{\footnotesize\ttfamily bool C\+R\+L\+::\+Alliance\+Framework\+::is\+Pad (\begin{DoxyParamCaption}\item[{const string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true} if {\ttfamily name} is recognized as a pad cell name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a8e044592d2ceaea0060aec5dc5cc6900}\label{classCRL_1_1AllianceFramework_a8e044592d2ceaea0060aec5dc5cc6900}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Environment@{get\+Environment}}
\index{get\+Environment@{get\+Environment}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Environment()}{getEnvironment()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1Environment}{Environment}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Environment (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the Environement. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a036bd6fa8f837c81f60b9d424f817add}\label{classCRL_1_1AllianceFramework_a036bd6fa8f837c81f60b9d424f817add}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Catalog@{get\+Catalog}}
\index{get\+Catalog@{get\+Catalog}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Catalog()}{getCatalog()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1Catalog}{Catalog}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Catalog (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the composite catalog build from all the library metadatas. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a4f1d2d34c254ac596e8c4a408ef6ba43}\label{classCRL_1_1AllianceFramework_a4f1d2d34c254ac596e8c4a408ef6ba43}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Parent\+Library\+Name@{get\+Parent\+Library\+Name}}
\index{get\+Parent\+Library\+Name@{get\+Parent\+Library\+Name}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Parent\+Library\+Name()}{getParentLibraryName()}}
{\footnotesize\ttfamily const \textbf{ Name} \& C\+R\+L\+::\+Alliance\+Framework\+::get\+Parent\+Library\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the name of the framework parent library, actually hard coded to \char`\"{}\+Root\+Library\char`\"{}. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_afe822e9e04b613862aec5066743e1ffd}\label{classCRL_1_1AllianceFramework_afe822e9e04b613862aec5066743e1ffd}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Parent\+Library@{get\+Parent\+Library}}
\index{get\+Parent\+Library@{get\+Parent\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Parent\+Library()}{getParentLibrary()}}
{\footnotesize\ttfamily \textbf{ Library} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Parent\+Library (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the library under which the Alliance ones are rooted. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ab6f9ac0f07b20c2444b13ef8bc55c9ea}\label{classCRL_1_1AllianceFramework_ab6f9ac0f07b20c2444b13ef8bc55c9ea}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Library@{get\+Library}}
\index{get\+Library@{get\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Library()}{getLibrary()}}
{\footnotesize\ttfamily \textbf{ Library} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Library (\begin{DoxyParamCaption}\item[{unsigned int}]{index }\end{DoxyParamCaption})}

{\bfseries Returns\+:} the \textbf{ Hurricane\+::\+Library} at {\ttfamily index} in the search path. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a4085f3bc96ca5e4bf2d41a4ada9658f2}\label{classCRL_1_1AllianceFramework_a4085f3bc96ca5e4bf2d41a4ada9658f2}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Alliance\+Library@{get\+Alliance\+Library}}
\index{get\+Alliance\+Library@{get\+Alliance\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Alliance\+Library()}{getAllianceLibrary()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Alliance\+Library (\begin{DoxyParamCaption}\item[{unsigned int}]{index }\end{DoxyParamCaption})}

{\bfseries Returns\+:} the \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} at {\ttfamily index} in the search path. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a8e007b3f2ac45feec2907f77530a718c}\label{classCRL_1_1AllianceFramework_a8e007b3f2ac45feec2907f77530a718c}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Alliance\+Library@{get\+Alliance\+Library}}
\index{get\+Alliance\+Library@{get\+Alliance\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Alliance\+Library()}{getAllianceLibrary()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Alliance\+Library (\begin{DoxyParamCaption}\item[{\textbf{ Library} $\ast$}]{library }\end{DoxyParamCaption})}

{\bfseries Returns\+:} the \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} which is associated to the \textbf{ Hurricane\+::\+Library} {\ttfamily library}. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a4efc06e6a6d5413398946453c3fd6649}\label{classCRL_1_1AllianceFramework_a4efc06e6a6d5413398946453c3fd6649}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!create\+Library@{create\+Library}}
\index{create\+Library@{create\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{create\+Library()}{createLibrary()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::create\+Library (\begin{DoxyParamCaption}\item[{const string \&}]{path,  }\item[{unsigned int}]{flags,  }\item[{string}]{lib\+Name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em path} & path to the library directory. \\
\hline
{\em flags} & control the creation behavior. \\
\hline
{\em lib\+Name} & the name of the library. {\bfseries Returns\+:} the created Alliance library.\\
\hline
\end{DoxyParams}
Create a new \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}}. If the library is not already in the search it\textquotesingle{}s prepended, otherwise the one already in place is used. If the library is in {\itshape load by lib} mode, the library parser is called and all the Cells are loaded. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a5e5a3d137a2c141bf8984877b7f7d18a}\label{classCRL_1_1AllianceFramework_a5e5a3d137a2c141bf8984877b7f7d18a}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!save\+Library@{save\+Library}}
\index{save\+Library@{save\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{save\+Library()}{saveLibrary()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::save\+Library (\begin{DoxyParamCaption}\item[{\textbf{ Library} $\ast$}]{library }\end{DoxyParamCaption})}

{\bfseries Returns\+:} save to disk all Cells of that library. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_afe7a103d54e865511fd55af90eddcf4e}\label{classCRL_1_1AllianceFramework_afe7a103d54e865511fd55af90eddcf4e}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!save\+Library@{save\+Library}}
\index{save\+Library@{save\+Library}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{save\+Library()}{saveLibrary()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::save\+Library (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$}]{library }\end{DoxyParamCaption})}

{\bfseries Returns\+:} save to disk all Cells of that library. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ae102d655820c5d0a29a0200c5e83d42c}\label{classCRL_1_1AllianceFramework_ae102d655820c5d0a29a0200c5e83d42c}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Routing\+Gauge@{get\+Routing\+Gauge}}
\index{get\+Routing\+Gauge@{get\+Routing\+Gauge}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Routing\+Gauge()}{getRoutingGauge()}}
{\footnotesize\ttfamily Cell\+Gauge $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Routing\+Gauge (\begin{DoxyParamCaption}\item[{const \textbf{ Name} \&}]{name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})}

{\bfseries Returns\+:} get the \mbox{\hyperlink{classCRL_1_1RoutingGauge}{Routing\+Gauge}} {\ttfamily name}. If {\ttfamily name} is empty, the default one.

{\bfseries Returns\+:} get the Cell\+Gauge {\ttfamily name}. If {\ttfamily name} is empty, the default one. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ae2bf20fc92a4684bebdab666c68c8aab}\label{classCRL_1_1AllianceFramework_ae2bf20fc92a4684bebdab666c68c8aab}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Default\+C\+G\+Pin\+Layer\+Name@{get\+Default\+C\+G\+Pin\+Layer\+Name}}
\index{get\+Default\+C\+G\+Pin\+Layer\+Name@{get\+Default\+C\+G\+Pin\+Layer\+Name}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Default\+C\+G\+Pin\+Layer\+Name()}{getDefaultCGPinLayerName()}}
{\footnotesize\ttfamily const \textbf{ Name} C\+R\+L\+::\+Alliance\+Framework\+::get\+Default\+C\+G\+Pin\+Layer\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} argh. Forget for what it is. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ae182fd150c695fd24c1b10ddbc377b32}\label{classCRL_1_1AllianceFramework_ae182fd150c695fd24c1b10ddbc377b32}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!add\+Routing\+Gauge@{add\+Routing\+Gauge}}
\index{add\+Routing\+Gauge@{add\+Routing\+Gauge}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{add\+Routing\+Gauge()}{addRoutingGauge()}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::add\+Routing\+Gauge (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classCRL_1_1RoutingGauge}{Routing\+Gauge}} $\ast$}]{gauge }\end{DoxyParamCaption})}

{\bfseries Returns\+:} Add a new \mbox{\hyperlink{classCRL_1_1RoutingGauge}{Routing\+Gauge}}. The last added becomes the default one. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_aab16db33a0ce2e3bce5739f7cadb3d5a}\label{classCRL_1_1AllianceFramework_aab16db33a0ce2e3bce5739f7cadb3d5a}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!add\+Cell\+Gauge@{add\+Cell\+Gauge}}
\index{add\+Cell\+Gauge@{add\+Cell\+Gauge}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{add\+Cell\+Gauge()}{addCellGauge()}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::add\+Cell\+Gauge (\begin{DoxyParamCaption}\item[{Cell\+Gauge $\ast$}]{gauge }\end{DoxyParamCaption})}

{\bfseries Returns\+:} Add a new Cell\+Gauge. The last added becomes the default one. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a329d04c188668968308108523d16e2be}\label{classCRL_1_1AllianceFramework_a329d04c188668968308108523d16e2be}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Cell@{get\+Cell}}
\index{get\+Cell@{get\+Cell}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Cell()}{getCell()}}
{\footnotesize\ttfamily \textbf{ Cell} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::get\+Cell (\begin{DoxyParamCaption}\item[{const string \&}]{name,  }\item[{unsigned int}]{mode,  }\item[{unsigned int}]{depth = {\ttfamily (unsigned~int)-\/1} }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em name} & the name of the Cell. \\
\hline
{\em mode} & control the loader behavior. \\
\hline
{\em depth} & the number of hierarchical levels under this cell. {\bfseries Returns\+:} the requested Cell.\\
\hline
\end{DoxyParams}
Find the first cell that match in the library search path, then call the parsers to load the requested views. If the cell is already in memory, it is directly returned. Thus a Cell never gets loaded twice from disk. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_ac4381ad0c3799d584ef3ea160846e2bb}\label{classCRL_1_1AllianceFramework_ac4381ad0c3799d584ef3ea160846e2bb}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!create\+Cell@{create\+Cell}}
\index{create\+Cell@{create\+Cell}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{create\+Cell()}{createCell()}}
{\footnotesize\ttfamily \textbf{ Cell} $\ast$ C\+R\+L\+::\+Alliance\+Framework\+::create\+Cell (\begin{DoxyParamCaption}\item[{const string \&}]{name,  }\item[{\mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} $\ast$}]{library = {\ttfamily NULL} }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em name} & the name of the cell. \\
\hline
{\em library} & an Alliance library. {\bfseries Returns\+:} the newly created Cell.\\
\hline
\end{DoxyParams}
Create a new Cell named {\ttfamily name} in the \mbox{\hyperlink{classCRL_1_1AllianceLibrary}{Alliance\+Library}} {\ttfamily library}. If {\ttfamily library} is {\ttfamily N\+U\+LL}, uses the working library. Checks are performed to ensure that in a given library no two cells have the same name. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_abb34a606c7cd21638b4439701a8dcef9}\label{classCRL_1_1AllianceFramework_abb34a606c7cd21638b4439701a8dcef9}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!save\+Cell@{save\+Cell}}
\index{save\+Cell@{save\+Cell}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{save\+Cell()}{saveCell()}}
{\footnotesize\ttfamily void C\+R\+L\+::\+Alliance\+Framework\+::save\+Cell (\begin{DoxyParamCaption}\item[{\textbf{ Cell} $\ast$}]{cell,  }\item[{unsigned int}]{mode }\end{DoxyParamCaption})}

Save on disk the requested Cell (in the revelant library directory). \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a2e43b1928a05eea4b2dc1fe0757e4865}\label{classCRL_1_1AllianceFramework_a2e43b1928a05eea4b2dc1fe0757e4865}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!load\+Library\+Cells@{load\+Library\+Cells}}
\index{load\+Library\+Cells@{load\+Library\+Cells}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{load\+Library\+Cells()}{loadLibraryCells()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned int C\+R\+L\+::\+Alliance\+Framework\+::load\+Library\+Cells (\begin{DoxyParamCaption}\item[{\textbf{ Library} $\ast$}]{library }\end{DoxyParamCaption})}

{\bfseries Returns\+:} the number of loaded cell. Load the whole library. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_adc8acedeb9daa37b4ab2dee0717835fa}\label{classCRL_1_1AllianceFramework_adc8acedeb9daa37b4ab2dee0717835fa}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!load\+Library\+Cells@{load\+Library\+Cells}}
\index{load\+Library\+Cells@{load\+Library\+Cells}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{load\+Library\+Cells()}{loadLibraryCells()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned int C\+R\+L\+::\+Alliance\+Framework\+::load\+Library\+Cells (\begin{DoxyParamCaption}\item[{const \textbf{ Name} \&}]{ }\end{DoxyParamCaption})}

{\bfseries Returns\+:} the number of loaded cell. Load the whole library. \mbox{\Hypertarget{classCRL_1_1AllianceFramework_a95aa8c6b8ab3f995daf22a0317324933}\label{classCRL_1_1AllianceFramework_a95aa8c6b8ab3f995daf22a0317324933}} 
\index{C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}!get\+Instances\+Count@{get\+Instances\+Count}}
\index{get\+Instances\+Count@{get\+Instances\+Count}!C\+R\+L\+::\+Alliance\+Framework@{C\+R\+L\+::\+Alliance\+Framework}}
\subsubsection{\texorpdfstring{get\+Instances\+Count()}{getInstancesCount()}}
{\footnotesize\ttfamily size\+\_\+t C\+R\+L\+::\+Alliance\+Framework\+::get\+Instances\+Count (\begin{DoxyParamCaption}\item[{\textbf{ Cell} $\ast$}]{cell,  }\item[{unsigned int}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Returns\+:} the number of instances of that cell. Depending on {\ttfamily flags}, may be recursive or exclude feed cells. 

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