\hypertarget{classIPvX}{
\section{IPvX Class Reference}
\label{classIPvX}\index{IPvX@{IPvX}}
}


Basic \hyperlink{classIPvX}{IPvX} class (for both \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6})  




{\ttfamily \#include $<$ipvx.hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIPvX_a65983b6a6e5d2c9d34016ba3c469e2e4}{IPvX} ()
\begin{DoxyCompactList}\small\item\em Default contructor. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_a51fa82529ba3ec20ec373687ac560216}{IPvX} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor for a specified address family. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_a52dad7dab65ad99b136d77a3a55977e8}{IPvX} (int family, const uint8\_\-t $\ast$from\_\-uint8)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from a (uint8\_\-t $\ast$) memory pointer. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_a194ac76f3e230d96e679e23f3fb18999}{IPvX} (const \hyperlink{classIPv4}{IPv4} \&ipv4)
\begin{DoxyCompactList}\small\item\em Constructor from an \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_af2af31e4e47e5ed10c2b28bcc8c39b23}{IPvX} (const \hyperlink{classIPv6}{IPv6} \&ipv6)
\begin{DoxyCompactList}\small\item\em Constructor from an \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_ad15126b4f7bb550adb28449c46dc6446}{IPvX} (const in\_\-addr \&from\_\-in\_\-addr)
\begin{DoxyCompactList}\small\item\em Constructor from in\_\-addr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_a4fd96c621e62cb8701ab7a9254897645}{IPvX} (const in6\_\-addr \&from\_\-in6\_\-addr)
\begin{DoxyCompactList}\small\item\em Constructor from in6\_\-addr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_ad20e2cdfab43195db0052712d9b2e8b8}{IPvX} (const sockaddr \&from\_\-sockaddr)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_af7e7626091a46820cfc91017732616ae}{IPvX} (const sockaddr\_\-storage \&from\_\-sockaddr\_\-storage)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_a1fe24b031463d1b6125babc0ed988e9e}{IPvX} (const sockaddr\_\-in \&from\_\-sockaddr\_\-in)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-in structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_ae435fc114415c72c7f85869978406460}{IPvX} (const sockaddr\_\-in6 \&from\_\-sockaddr\_\-in6)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-in6 structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX_aad3e426cdb3f6751ec2b9be716398620}{IPvX} (const char $\ast$from\_\-cstring)  throw (InvalidString)
\begin{DoxyCompactList}\small\item\em Constructor from a string. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a2ae03a83304b5bdd04f94417444e4184}{copy\_\-out} (uint8\_\-t $\ast$to\_\-uint8) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to specified memory location. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_ac5017ce31e3cc6b099dbc59484f0745b}{copy\_\-out} (in\_\-addr \&to\_\-in\_\-addr) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to an in\_\-addr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a683086fcb4289259998d7813165df1a2}{copy\_\-out} (in6\_\-addr \&to\_\-in6\_\-addr) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to an in6\_\-addr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a21ec1a1c4d8643b555cc6f574453df30}{copy\_\-out} (sockaddr \&to\_\-sockaddr) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_abe5d1bdf03e57c2a938a128e3f283255}{copy\_\-out} (sockaddr\_\-storage \&to\_\-sockaddr\_\-storage) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a9723cfc3f8e7220bc134a20185efa0fe}{copy\_\-out} (sockaddr\_\-in \&to\_\-sockaddr\_\-in) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-in structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a2d3f2f0c9c8fb1aa3d96c8e95772d202}{copy\_\-out} (sockaddr\_\-in6 \&to\_\-sockaddr\_\-in6) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-in6 structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_afe58789963941c523ec69b756624cfd0}{copy\_\-in} (int family, const uint8\_\-t $\ast$from\_\-uint8)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address of specified family type from specified memory location into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a19fb22378dab5221b271999f46c852f0}{copy\_\-in} (const in\_\-addr \&from\_\-in\_\-addr)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv4}{IPv4} address from a in\_\-addr structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_a9a00e7005b9c72b5995dcbe7673e9fef}{copy\_\-in} (const in6\_\-addr \&from\_\-in6\_\-addr)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv6}{IPv6} address from a in6\_\-addr structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_af8d7717ab2e4a3b08eec5fd2f7cb39bf}{copy\_\-in} (const sockaddr \&from\_\-sockaddr)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_ac15d9280f8593374ac6796779ec834de}{copy\_\-in} (const sockaddr\_\-storage \&from\_\-sockaddr\_\-storage)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr\_\-storage structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_aff3979ca6ae6656d9905f8034a919163}{copy\_\-in} (const sockaddr\_\-in \&from\_\-sockaddr\_\-in)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr\_\-in structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_aa893f9a9df63e80b467b3517ecc56fcf}{copy\_\-in} (const sockaddr\_\-in6 \&from\_\-sockaddr\_\-in6)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from sockaddr\_\-in6 structure into \hyperlink{classIPvX}{IPvX} structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a974b6acc5b9450a5e7660252946d5058}{operator$\sim$} () const 
\begin{DoxyCompactList}\small\item\em Bitwise-\/Negation Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a130db0cb7712fada3a3b1797bf96f46a}{operator$|$} (const \hyperlink{classIPvX}{IPvX} \&other) const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em OR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_aff2fd865a7e6e7bb3f21680152fd4ba8}{operator\&} (const \hyperlink{classIPvX}{IPvX} \&other) const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em AND Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a4cf324b7786a6a085296a24eb5501f06}{operator$^\wedge$} (const \hyperlink{classIPvX}{IPvX} \&other) const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em XOR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_af0b69414244643a9b8487955a27c0417}{operator$<$$<$} (uint32\_\-t left\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $<$$<$. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a25d1cd3474a664461b7932941e4f2279}{operator$>$$>$} (uint32\_\-t right\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $>$$>$ \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a234d7eb99e186ace2db8464e8836ec96}{operator$<$} (const \hyperlink{classIPvX}{IPvX} \&other) const 
\begin{DoxyCompactList}\small\item\em Less-\/Than Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a9ef5c3d113ad87e9759c359803e950f6}{operator==} (const \hyperlink{classIPvX}{IPvX} \&other) const 
\begin{DoxyCompactList}\small\item\em Equality Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a4f8645ff4458e031d39a49b310227abb}{operator!=} (const \hyperlink{classIPvX}{IPvX} \&other) const 
\begin{DoxyCompactList}\small\item\em Not-\/Equal Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \& \hyperlink{classIPvX_ab1e062d49324d0d024391b23683ea580}{operator-\/-\/} ()
\begin{DoxyCompactList}\small\item\em Decrement Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \& \hyperlink{classIPvX_a7fa9efac9604757299c7240e38792c2b}{operator++} ()
\begin{DoxyCompactList}\small\item\em Increment Operator. \item\end{DoxyCompactList}\item 
string \hyperlink{classIPvX_a342eb2195b9e1ad0219d98cb0c2ea881}{str} () const 
\begin{DoxyCompactList}\small\item\em Convert this address from binary form to presentation format. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_ae8b4e8dc8bf293f564fea7309e3b68fa}{is\_\-zero} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is numerically zero. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_ae514da5c53adf3d5c3f9fa7158f7fd03}{is\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a68b5939ae1d6a133a91525e6636e3230}{is\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a3ffcd9b3fb7839188b2aa208dee09db3}{is\_\-class\_\-a} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class A address space (0.0.0.0/1). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a3fb47382a47dedd827f80cba67c0d255}{is\_\-class\_\-b} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class B address space (128.0.0.0/2). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_afe114686304f222f91be5aa08af70402}{is\_\-class\_\-c} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class C address space (192.0.0.0/3). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a43f6a546581648778363358a6ba01ff1}{is\_\-experimental} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} experimental Class E address space (240.0.0.0/4). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a7453648dc1c61b8459da0bd363fcdfd7}{is\_\-linklocal\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a7bd1ce107a8497dd812088f55ebca07a}{is\_\-interfacelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid interface-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a5461ed42ed940263be01bba6843343c4}{is\_\-nodelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid node-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_ae583dca86d8b75fcaaccfe248ef4c1f9}{is\_\-linklocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_ab0372aef8a9dde5a2eba43b0a8d0183a}{is\_\-loopback} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid loopback address. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPvX_af5a1f317de79ae82507920989cec9423}{addr\_\-bytelen} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address octet-\/size for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a08a727be803e6ffddaa063d4c619264d}{addr\_\-bitlen} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address bit-\/length for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a95b89d867f0408a4950853eb6cc79bdc}{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a261165e876f4f8128a8b6a4a9f99ccb5}{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a83010048e4c57f599063eef9b14f12cc}{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a670e191dc30cfb63a53aa1ac733a17f7}{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address for this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_a49ae1073d87fabc1c9c3944d4fb5a364}{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address for this address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a0f9a9cb829326b696f4990f142ab5ca7}{make\_\-prefix} (uint32\_\-t mask\_\-len) const   throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPvX}{IPvX} mask prefix for \hyperlink{protocolthe-p}{the} address family of this address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_aaee739fe1e3c9288a5c1c2cea007eba1}{mask\_\-by\_\-prefix\_\-len} (uint32\_\-t prefix\_\-len) const   throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPvX}{IPvX} address prefix. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_ab5479ee4534702d3f1c75f55f7bbfd65}{mask\_\-len} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a3b2fef82278213bdfef1f2941693f628}{is\_\-ipv4} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPvX_a741f2ec70a28c732143564a4459a9f61}{is\_\-ipv6} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPvX_acbbac5c4dba12bcb431ecba0aedff1e9}{get\_\-ipv4} () const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPvX_aa931388817151eb6565aeecd018fd7cf}{get\_\-ipv6} () const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIPvX_a78eb329c29cecdb771a0f89d20262c91}{get} (\hyperlink{classIPv4}{IPv4} \&to\_\-ipv4) const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em Assign address value to an \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIPvX_a17811f763ef9e93b70d08469ec532856}{get} (\hyperlink{classIPv6}{IPv6} \&to\_\-ipv6) const   throw (InvalidCast)
\begin{DoxyCompactList}\small\item\em Assign address value to an \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
int \hyperlink{classIPvX_acb11d01e99f4eef9c1776768a6d4d27c}{af} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address family. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_aa1baf8e0b406aec949ca34c34ec57df3}{ip\_\-version} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classIPvX_a1ee7b6454cf1566c63ef19e85cd93481}{ip\_\-version\_\-str} () const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_ac555c1c8972d8c975d428556db8c3ad4}{bits} (uint32\_\-t lsb, uint32\_\-t len) const   throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Extract bits from an address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_af519957a4213d8dda2c8f98d1226f322}{bit\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPvX_ac31a7646fb6c00affc4241dcd4615745}{leading\_\-zero\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static size\_\-t \hyperlink{classIPvX_aac93f45c723b508e62895c98ee230ccb}{addr\_\-bytelen} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address octet-\/size. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_a3f84e500a62370600f258d45f7d217bf}{addr\_\-bitlen} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address bit-\/length. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_abf601649f5a517118f73a771cba38d86}{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_a3838e5aaf37909235e38a5aee4333ec5}{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_a8a4835414484d34895b6cfd4a0c3be3f}{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_aa66edaa79f67e6878312dde0aad3ff2e}{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPvX_acd90627225df17396b69a3c5075df4d7}{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len} (int family)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address. \item\end{DoxyCompactList}\item 
static \hyperlink{classIPvX}{IPvX} \hyperlink{classIPvX_a26017c21d537dfe84e4fe099b6805bc2}{make\_\-prefix} (int family, uint32\_\-t mask\_\-len)  throw (InvalidFamily, InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPvX}{IPvX} mask prefix. \item\end{DoxyCompactList}\item 
\hypertarget{classIPvX_aba7dce7144be6617538811e770c26cbd}{
static const \hyperlink{classIPvX}{IPvX} \& \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{ZERO} (int family)  throw (InvalidFamily)}
\label{classIPvX_aba7dce7144be6617538811e770c26cbd}

\begin{DoxyCompactList}\small\item\em Pre-\/defined \hyperlink{classIPvX}{IPvX} address constants. \item\end{DoxyCompactList}\item 
\hypertarget{classIPvX_ac3f1b3981521ec9aae59302cac071c1a}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries ANY} (int family)  throw (InvalidFamily)}
\label{classIPvX_ac3f1b3981521ec9aae59302cac071c1a}

\item 
\hypertarget{classIPvX_adf0ae0ac6d5378c60fce4d21be254f64}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries ALL\_\-ONES} (int family)  throw (InvalidFamily)}
\label{classIPvX_adf0ae0ac6d5378c60fce4d21be254f64}

\item 
\hypertarget{classIPvX_a2f28f081ac89efa320c84c4d201c9fc3}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries LOOPBACK} (int family)  throw (InvalidFamily)}
\label{classIPvX_a2f28f081ac89efa320c84c4d201c9fc3}

\item 
\hypertarget{classIPvX_a1fc4ce82de7bbb611cc1f92266796ffa}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries MULTICAST\_\-BASE} (int family)  throw (InvalidFamily)}
\label{classIPvX_a1fc4ce82de7bbb611cc1f92266796ffa}

\item 
\hypertarget{classIPvX_a5ca9ffbf8ef1c10fe3215b05de90d667}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries MULTICAST\_\-ALL\_\-SYSTEMS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a5ca9ffbf8ef1c10fe3215b05de90d667}

\item 
\hypertarget{classIPvX_a9bf27eca6a1accdaf50839afb03eb07e}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries MULTICAST\_\-ALL\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a9bf27eca6a1accdaf50839afb03eb07e}

\item 
\hypertarget{classIPvX_a3637cf530069c6cd4581806b4b97c38f}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries DVMRP\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a3637cf530069c6cd4581806b4b97c38f}

\item 
\hypertarget{classIPvX_a7feeb2d7c9689fc79989c699a755d08d}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries OSPFIGP\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a7feeb2d7c9689fc79989c699a755d08d}

\item 
\hypertarget{classIPvX_a41bb88180941f21608a7142b90961f72}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries OSPFIGP\_\-DESIGNATED\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a41bb88180941f21608a7142b90961f72}

\item 
\hypertarget{classIPvX_a72c9182b233cac6668735096db1fdcaf}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries RIP2\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a72c9182b233cac6668735096db1fdcaf}

\item 
\hypertarget{classIPvX_acf983547c55821c0c42ac11c97b120bc}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries PIM\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_acf983547c55821c0c42ac11c97b120bc}

\item 
\hypertarget{classIPvX_a40322f3ab5d60b0df073b341013eae42}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries SSM\_\-ROUTERS} (int family)  throw (InvalidFamily)}
\label{classIPvX_a40322f3ab5d60b0df073b341013eae42}

\item 
\hypertarget{classIPvX_ada013e84751aaebd4c34843637ddaf8c}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries CLASS\_\-A\_\-BASE} (int family)  throw (InvalidFamily)}
\label{classIPvX_ada013e84751aaebd4c34843637ddaf8c}

\item 
\hypertarget{classIPvX_a1b9dd903d31d2289b688664a73b8aefe}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries CLASS\_\-B\_\-BASE} (int family)  throw (InvalidFamily)}
\label{classIPvX_a1b9dd903d31d2289b688664a73b8aefe}

\item 
\hypertarget{classIPvX_aafed81a3abdda8e015e4d67f3615cb08}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries CLASS\_\-C\_\-BASE} (int family)  throw (InvalidFamily)}
\label{classIPvX_aafed81a3abdda8e015e4d67f3615cb08}

\item 
\hypertarget{classIPvX_ae9ffcd4fdac525143b0fa0bde685f623}{
static const \hyperlink{classIPvX}{IPvX} \& {\bfseries EXPERIMENTAL\_\-BASE} (int family)  throw (InvalidFamily)}
\label{classIPvX_ae9ffcd4fdac525143b0fa0bde685f623}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPvX_a14cd4e66c636c060cb875f0e373d1d27}{
uint32\_\-t {\bfseries \_\-addr} \mbox{[}4\mbox{]}}
\label{classIPvX_a14cd4e66c636c060cb875f0e373d1d27}

\item 
\hypertarget{classIPvX_a077ec4176a0533808deef43909a54c11}{
int {\bfseries \_\-af}}
\label{classIPvX_a077ec4176a0533808deef43909a54c11}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPvX_a5fb6114356ba8e4b0c41129ae7c5756e}{
class \hyperlink{classIPvX_a5fb6114356ba8e4b0c41129ae7c5756e}{IPv4}}
\label{classIPvX_a5fb6114356ba8e4b0c41129ae7c5756e}

\item 
\hypertarget{classIPvX_a1432ccc563d3905d3abf884af2d9138f}{
class \hyperlink{classIPvX_a1432ccc563d3905d3abf884af2d9138f}{IPv6}}
\label{classIPvX_a1432ccc563d3905d3abf884af2d9138f}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Basic \hyperlink{classIPvX}{IPvX} class (for both \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6}) 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classIPvX_a65983b6a6e5d2c9d34016ba3c469e2e4}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a65983b6a6e5d2c9d34016ba3c469e2e4}


Default contructor. 

Creates an \hyperlink{classIPvX}{IPvX} address with address family of AF\_\-INET, and address value of INADDR\_\-ANY (i.e., containing IPv4(0)). \hypertarget{classIPvX_a51fa82529ba3ec20ec373687ac560216}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}explicit\mbox{]}}}}
\label{classIPvX_a51fa82529ba3ec20ec373687ac560216}


Constructor for a specified address family. 

Creates an address of specified family, and address value of INADDR\_\-ANY or IN6ADDR\_\-ANY (for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively).


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_a52dad7dab65ad99b136d77a3a55977e8}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_a52dad7dab65ad99b136d77a3a55977e8}


Constructor from a (uint8\_\-t $\ast$) memory pointer. 

Creates an address of specified family, and address value by using data from specified location.


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_a194ac76f3e230d96e679e23f3fb18999}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{ipv4}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a194ac76f3e230d96e679e23f3fb18999}


Constructor from an \hyperlink{classIPv4}{IPv4} address. 

Create an \hyperlink{classIPvX}{IPvX} address from an \hyperlink{classIPv4}{IPv4} address.


\begin{DoxyParams}{Parameters}
{\em ipv4} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} address to assign \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_af2af31e4e47e5ed10c2b28bcc8c39b23}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{ipv6}
\end{DoxyParamCaption}
)}}
\label{classIPvX_af2af31e4e47e5ed10c2b28bcc8c39b23}


Constructor from an \hyperlink{classIPv6}{IPv6} address. 

Create an \hyperlink{classIPvX}{IPvX} address from an \hyperlink{classIPv6}{IPv6} address.


\begin{DoxyParams}{Parameters}
{\em ipv6} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} address to assign \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_ad15126b4f7bb550adb28449c46dc6446}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const in\_\-addr \&}]{from\_\-in\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPvX_ad15126b4f7bb550adb28449c46dc6446}


Constructor from in\_\-addr structure. 

Note that this address must be of AF\_\-INET family.


\begin{DoxyParams}{Parameters}
{\em from\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_a4fd96c621e62cb8701ab7a9254897645}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const in6\_\-addr \&}]{from\_\-in6\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a4fd96c621e62cb8701ab7a9254897645}


Constructor from in6\_\-addr structure. 

Note that this address must be of AF\_\-INET6 family.


\begin{DoxyParams}{Parameters}
{\em from\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_ad20e2cdfab43195db0052712d9b2e8b8}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{from\_\-sockaddr}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_ad20e2cdfab43195db0052712d9b2e8b8}


Constructor from sockaddr structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_af7e7626091a46820cfc91017732616ae}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{from\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_af7e7626091a46820cfc91017732616ae}


Constructor from sockaddr\_\-storage structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_a1fe24b031463d1b6125babc0ed988e9e}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in \&}]{from\_\-sockaddr\_\-in}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_a1fe24b031463d1b6125babc0ed988e9e}


Constructor from sockaddr\_\-in structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from.\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em \hyperlink{classInvalidFamily}{InvalidFamily}} & thrown if {\itshape from\_\-sockaddr\_\-in\/} is not a AF\_\-INET sockaddr. \\
\hline
\end{DoxyExceptions}
\hypertarget{classIPvX_ae435fc114415c72c7f85869978406460}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in6 \&}]{from\_\-sockaddr\_\-in6}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_ae435fc114415c72c7f85869978406460}


Constructor from sockaddr\_\-in6 structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in6} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from.\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em \hyperlink{classInvalidFamily}{InvalidFamily}} & thrown if {\itshape from\_\-sockaddr\_\-in6\/} is not a AF\_\-INET6 sockaddr. \\
\hline
\end{DoxyExceptions}
\hypertarget{classIPvX_aad3e426cdb3f6751ec2b9be716398620}{
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\index{IPvX@{IPvX}!IPvX@{IPvX}}
\subsubsection[{IPvX}]{\setlength{\rightskip}{0pt plus 5cm}IPvX::IPvX (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{from\_\-cstring}
\end{DoxyParamCaption}
)  throw ({\bf InvalidString})}}
\label{classIPvX_aad3e426cdb3f6751ec2b9be716398620}


Constructor from a string. 


\begin{DoxyParams}{Parameters}
{\em from\_\-cstring} & C-\/style string in \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} dotted decimal or \hyperlink{classIPv6}{IPv6} canonical human-\/readable format used for initialization. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classIPvX_a3f84e500a62370600f258d45f7d217bf}{
\index{IPvX@{IPvX}!addr\_\-bitlen@{addr\_\-bitlen}}
\index{addr\_\-bitlen@{addr\_\-bitlen}!IPvX@{IPvX}}
\subsubsection[{addr\_\-bitlen}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPvX::addr\_\-bitlen (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPvX_a3f84e500a62370600f258d45f7d217bf}


Get \hyperlink{protocolthe-p}{the} address bit-\/length. 

Note that this is a static function and is to be used without a particular object. Example: uint32\_\-t my\_\-bitlen = IPvX::addr\_\-bitlen(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
address size in number of bits for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a08a727be803e6ffddaa063d4c619264d}{
\index{IPvX@{IPvX}!addr\_\-bitlen@{addr\_\-bitlen}}
\index{addr\_\-bitlen@{addr\_\-bitlen}!IPvX@{IPvX}}
\subsubsection[{addr\_\-bitlen}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::addr\_\-bitlen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a08a727be803e6ffddaa063d4c619264d}


Get \hyperlink{protocolthe-p}{the} address bit-\/length for this address. 

Note that this is not a static function, hence it has to be used with a particular object. Example: uint32\_\-t my\_\-bitlen = ipvx.addr\_\-bitlen();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
address size in number of bits for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_aac93f45c723b508e62895c98ee230ccb}{
\index{IPvX@{IPvX}!addr\_\-bytelen@{addr\_\-bytelen}}
\index{addr\_\-bytelen@{addr\_\-bytelen}!IPvX@{IPvX}}
\subsubsection[{addr\_\-bytelen}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::addr\_\-bytelen (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_aac93f45c723b508e62895c98ee230ccb}


Get \hyperlink{protocolthe-p}{the} address octet-\/size. 

Note that this is a static function and is to be used without a particular object. Example: size\_\-t my\_\-size = IPvX::addr\_\-bytelen(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
address size in number of octets for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_af5a1f317de79ae82507920989cec9423}{
\index{IPvX@{IPvX}!addr\_\-bytelen@{addr\_\-bytelen}}
\index{addr\_\-bytelen@{addr\_\-bytelen}!IPvX@{IPvX}}
\subsubsection[{addr\_\-bytelen}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::addr\_\-bytelen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_af5a1f317de79ae82507920989cec9423}


Get \hyperlink{protocolthe-p}{the} address octet-\/size for this address. 

Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-size = ipvx.addr\_\-bytelen();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
address size in number of octets for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_acb11d01e99f4eef9c1776768a6d4d27c}{
\index{IPvX@{IPvX}!af@{af}}
\index{af@{af}!IPvX@{IPvX}}
\subsubsection[{af}]{\setlength{\rightskip}{0pt plus 5cm}int IPvX::af (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_acb11d01e99f4eef9c1776768a6d4d27c}


Get \hyperlink{protocolthe-p}{the} address family. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} address family of this address (AF\_\-INET or AF\_\-INET6). 
\end{DoxyReturn}
\hypertarget{classIPvX_af519957a4213d8dda2c8f98d1226f322}{
\index{IPvX@{IPvX}!bit\_\-count@{bit\_\-count}}
\index{bit\_\-count@{bit\_\-count}!IPvX@{IPvX}}
\subsubsection[{bit\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::bit\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_af519957a4213d8dda2c8f98d1226f322}


Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of bits that are set in this address. 
\end{DoxyReturn}
\hypertarget{classIPvX_ac555c1c8972d8c975d428556db8c3ad4}{
\index{IPvX@{IPvX}!bits@{bits}}
\index{bits@{bits}!IPvX@{IPvX}}
\subsubsection[{bits}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::bits (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{lsb, }
\item[{uint32\_\-t}]{len}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_ac555c1c8972d8c975d428556db8c3ad4}


Extract bits from an address. 


\begin{DoxyParams}{Parameters}
{\em lsb} & starting bit position (from \hyperlink{protocolthe-p}{the} right) to extract. \\
\hline
{\em len} & number of bits to extract. The maximum value is 32. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} first len bits starting from \hyperlink{protocolthe-p}{the} rightmost position lsb. The returned bits are in host order. 
\end{DoxyReturn}
\hypertarget{classIPvX_a19fb22378dab5221b271999f46c852f0}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const in\_\-addr \&}]{from\_\-in\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a19fb22378dab5221b271999f46c852f0}


Copy a raw \hyperlink{classIPv4}{IPv4} address from a in\_\-addr structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address of family AF\_\-INET from .


\begin{DoxyParams}{Parameters}
{\em from\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a9a00e7005b9c72b5995dcbe7673e9fef}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const in6\_\-addr \&}]{from\_\-in6\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a9a00e7005b9c72b5995dcbe7673e9fef}


Copy a raw \hyperlink{classIPv6}{IPv6} address from a in6\_\-addr structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address of family AF\_\-INET6 from .


\begin{DoxyParams}{Parameters}
{\em from\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_afe58789963941c523ec69b756624cfd0}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_afe58789963941c523ec69b756624cfd0}


Copy a raw address of specified family type from specified memory location into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address of family  from \hyperlink{protocolthe-p}{the} memory pointed by .


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} memory address to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_af8d7717ab2e4a3b08eec5fd2f7cb39bf}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{from\_\-sockaddr}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_af8d7717ab2e4a3b08eec5fd2f7cb39bf}


Copy a raw address from a sockaddr structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address from .

Copy a raw address from a sockaddr structure, and set internal address family appropriately.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_aff3979ca6ae6656d9905f8034a919163}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in \&}]{from\_\-sockaddr\_\-in}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_aff3979ca6ae6656d9905f8034a919163}


Copy a raw address from a sockaddr\_\-in structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address from .

Copy a raw address from a sockaddr\_\-in structure, and set internal address family appropriately.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \hyperlink{classInvalidFamily}{InvalidFamily}} & thrown if {\itshape from\_\-sockaddr\_\-in\/} is not a AF\_\-INET sockaddr.\\
\hline
\end{DoxyExceptions}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_ac15d9280f8593374ac6796779ec834de}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{from\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_ac15d9280f8593374ac6796779ec834de}


Copy a raw address from a sockaddr\_\-storage structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address from .

Copy a raw address from a sockaddr\_\-storage structure, and set internal address family appropriately.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_aa893f9a9df63e80b467b3517ecc56fcf}{
\index{IPvX@{IPvX}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPvX@{IPvX}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in6 \&}]{from\_\-sockaddr\_\-in6}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPvX_aa893f9a9df63e80b467b3517ecc56fcf}


Copy a raw address from sockaddr\_\-in6 structure into \hyperlink{classIPvX}{IPvX} structure. 

Copy a raw address from .

Copy a raw address from sockaddr\_\-in6 structure, and set internal address family appropriately.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in6} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \hyperlink{classInvalidFamily}{InvalidFamily}} & thrown if {\itshape from\_\-sockaddr\_\-in6\/} is not a AF\_\-INET6 sockaddr.\\
\hline
\end{DoxyExceptions}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a21ec1a1c4d8643b555cc6f574453df30}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr \&}]{to\_\-sockaddr}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_a21ec1a1c4d8643b555cc6f574453df30}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPvX}{IPvX} instance to an sockaddr structure and assign appropriately and set fields within sockaddr appropriately. The underlying address representation may be either \hyperlink{classIPv4}{IPv4} or \hyperlink{classIPv6}{IPv6}.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a2ae03a83304b5bdd04f94417444e4184}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{to\_\-uint8}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a2ae03a83304b5bdd04f94417444e4184}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to specified memory location. 

Copy \hyperlink{protocolthe-p}{the} raw address to memory pointed by .


\begin{DoxyParams}{Parameters}
{\em } & to\_\-uint8 \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_ac5017ce31e3cc6b099dbc59484f0745b}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{in\_\-addr \&}]{to\_\-in\_\-addr}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_ac5017ce31e3cc6b099dbc59484f0745b}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to an in\_\-addr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to .

Note that this address must be of AF\_\-INET family.


\begin{DoxyParams}{Parameters}
{\em to\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_abe5d1bdf03e57c2a938a128e3f283255}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-storage \&}]{to\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_abe5d1bdf03e57c2a938a128e3f283255}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-storage structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPvX}{IPvX} instance to an sockaddr\_\-storage structure and assign appropriately and set fields within sockaddr\_\-storage appropriately. The underlying address representation may be either \hyperlink{classIPv4}{IPv4} or \hyperlink{classIPv6}{IPv6}.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a9723cfc3f8e7220bc134a20185efa0fe}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-in \&}]{to\_\-sockaddr\_\-in}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_a9723cfc3f8e7220bc134a20185efa0fe}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-in structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPvX}{IPvX} instance to an sockaddr\_\-in structure and assign appropriately and set fields within {\itshape to\_\-sockaddr\_\-in\/} appropriately.

Note that this address must be of AF\_\-INET family.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-in} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a683086fcb4289259998d7813165df1a2}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{in6\_\-addr \&}]{to\_\-in6\_\-addr}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_a683086fcb4289259998d7813165df1a2}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to an in6\_\-addr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to .

Note that this address must be of AF\_\-INET6 family.


\begin{DoxyParams}{Parameters}
{\em to\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a2d3f2f0c9c8fb1aa3d96c8e95772d202}{
\index{IPvX@{IPvX}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPvX@{IPvX}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPvX::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-in6 \&}]{to\_\-sockaddr\_\-in6}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_a2d3f2f0c9c8fb1aa3d96c8e95772d202}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} raw address to a sockaddr\_\-in6 structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPvX}{IPvX} instance to a sockaddr\_\-in6 structure and assign appropriately and set fields within {\itshape to\_\-sockaddr\_\-in6\/} appropriately.

Note that this address must be of AF\_\-INET6 family.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-in6} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPvX_a78eb329c29cecdb771a0f89d20262c91}{
\index{IPvX@{IPvX}!get@{get}}
\index{get@{get}!IPvX@{IPvX}}
\subsubsection[{get}]{\setlength{\rightskip}{0pt plus 5cm}void IPvX::get (
\begin{DoxyParamCaption}
\item[{{\bf IPv4} \&}]{to\_\-ipv4}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a78eb329c29cecdb771a0f89d20262c91}


Assign address value to an \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em to\_\-ipv4} & \hyperlink{classIPv4}{IPv4} address to be assigned \hyperlink{classIPv4}{IPv4} value contained within this address. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_a17811f763ef9e93b70d08469ec532856}{
\index{IPvX@{IPvX}!get@{get}}
\index{get@{get}!IPvX@{IPvX}}
\subsubsection[{get}]{\setlength{\rightskip}{0pt plus 5cm}void IPvX::get (
\begin{DoxyParamCaption}
\item[{{\bf IPv6} \&}]{to\_\-ipv6}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a17811f763ef9e93b70d08469ec532856}


Assign address value to an \hyperlink{classIPv6}{IPv6} address. 


\begin{DoxyParams}{Parameters}
{\em to\_\-ipv6} & \hyperlink{classIPv6}{IPv6} address to be assigned \hyperlink{classIPv4}{IPv4} value contained within this address. \\
\hline
\end{DoxyParams}
\hypertarget{classIPvX_acbbac5c4dba12bcb431ecba0aedff1e9}{
\index{IPvX@{IPvX}!get\_\-ipv4@{get\_\-ipv4}}
\index{get\_\-ipv4@{get\_\-ipv4}!IPvX@{IPvX}}
\subsubsection[{get\_\-ipv4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPvX::get\_\-ipv4 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_acbbac5c4dba12bcb431ecba0aedff1e9}


Get \hyperlink{classIPv4}{IPv4} address. 

\begin{DoxyReturn}{Returns}
\hyperlink{classIPv4}{IPv4} address contained with \hyperlink{classIPvX}{IPvX} structure. 
\end{DoxyReturn}
\hypertarget{classIPvX_aa931388817151eb6565aeecd018fd7cf}{
\index{IPvX@{IPvX}!get\_\-ipv6@{get\_\-ipv6}}
\index{get\_\-ipv6@{get\_\-ipv6}!IPvX@{IPvX}}
\subsubsection[{get\_\-ipv6}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPvX::get\_\-ipv6 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_aa931388817151eb6565aeecd018fd7cf}


Get \hyperlink{classIPv6}{IPv6} address. 

\begin{DoxyReturn}{Returns}
\hyperlink{classIPv6}{IPv6} address contained with \hyperlink{classIPvX}{IPvX} structure. 
\end{DoxyReturn}
\hypertarget{classIPvX_a3838e5aaf37909235e38a5aee4333ec5}{
\index{IPvX@{IPvX}!ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_a3838e5aaf37909235e38a5aee4333ec5}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = IPvX::ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class A base address mask length for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a261165e876f4f8128a8b6a4a9f99ccb5}{
\index{IPvX@{IPvX}!ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a261165e876f4f8128a8b6a4a9f99ccb5}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address for this address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-len = ipvx.ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class A base address mask length for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a8a4835414484d34895b6cfd4a0c3be3f}{
\index{IPvX@{IPvX}!ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_a8a4835414484d34895b6cfd4a0c3be3f}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = IPvX::ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class B base address mask length for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a83010048e4c57f599063eef9b14f12cc}{
\index{IPvX@{IPvX}!ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a83010048e4c57f599063eef9b14f12cc}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address for this address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-len = ipvx.ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class B base address mask length for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_aa66edaa79f67e6878312dde0aad3ff2e}{
\index{IPvX@{IPvX}!ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_aa66edaa79f67e6878312dde0aad3ff2e}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = IPvX::ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class C base address mask length for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a670e191dc30cfb63a53aa1ac733a17f7}{
\index{IPvX@{IPvX}!ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a670e191dc30cfb63a53aa1ac733a17f7}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address for this address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-len = ipvx.ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class C base address mask length for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_acd90627225df17396b69a3c5075df4d7}{
\index{IPvX@{IPvX}!ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_acd90627225df17396b69a3c5075df4d7}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = IPvX::ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} experimental base address mask length for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a49ae1073d87fabc1c9c3944d4fb5a364}{
\index{IPvX@{IPvX}!ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a49ae1073d87fabc1c9c3944d4fb5a364}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address for this address. 

This method applies only for \hyperlink{classIPv4}{IPv4}. Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-len = ipvx.ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} experimental base address mask length for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_abf601649f5a517118f73a771cba38d86}{
\index{IPvX@{IPvX}!ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
\item[{int}]{family}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_abf601649f5a517118f73a771cba38d86}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = IPvX::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len(my\_\-family);


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} multicast base address mask length for an address of address family of family. 
\end{DoxyReturn}
\hypertarget{classIPvX_a95b89d867f0408a4950853eb6cc79bdc}{
\index{IPvX@{IPvX}!ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a95b89d867f0408a4950853eb6cc79bdc}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address for this address. 

Note that this is not a static function, hence it has to be used with a particular object. Example: size\_\-t my\_\-len = ipvx.ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len();


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} multicast base address mask length for this \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_aa1baf8e0b406aec949ca34c34ec57df3}{
\index{IPvX@{IPvX}!ip\_\-version@{ip\_\-version}}
\index{ip\_\-version@{ip\_\-version}!IPvX@{IPvX}}
\subsubsection[{ip\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::ip\_\-version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_aa1baf8e0b406aec949ca34c34ec57df3}


Get \hyperlink{protocolthe-p}{the} IP protocol version. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol version of this address.

IP protocol version. 
\end{DoxyReturn}
\hypertarget{classIPvX_a1ee7b6454cf1566c63ef19e85cd93481}{
\index{IPvX@{IPvX}!ip\_\-version\_\-str@{ip\_\-version\_\-str}}
\index{ip\_\-version\_\-str@{ip\_\-version\_\-str}!IPvX@{IPvX}}
\subsubsection[{ip\_\-version\_\-str}]{\setlength{\rightskip}{0pt plus 5cm}const string \& IPvX::ip\_\-version\_\-str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidFamily})}}
\label{classIPvX_a1ee7b6454cf1566c63ef19e85cd93481}


Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version of this address.

IP protocol version string. 
\end{DoxyReturn}
\hypertarget{classIPvX_a3ffcd9b3fb7839188b2aa208dee09db3}{
\index{IPvX@{IPvX}!is\_\-class\_\-a@{is\_\-class\_\-a}}
\index{is\_\-class\_\-a@{is\_\-class\_\-a}!IPvX@{IPvX}}
\subsubsection[{is\_\-class\_\-a}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-class\_\-a (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a3ffcd9b3fb7839188b2aa208dee09db3}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class A address space (0.0.0.0/1). 

This method applies only for \hyperlink{classIPv4}{IPv4}, and always returns false for \hyperlink{classIPv6}{IPv6}.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class A address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a3fb47382a47dedd827f80cba67c0d255}{
\index{IPvX@{IPvX}!is\_\-class\_\-b@{is\_\-class\_\-b}}
\index{is\_\-class\_\-b@{is\_\-class\_\-b}!IPvX@{IPvX}}
\subsubsection[{is\_\-class\_\-b}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-class\_\-b (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a3fb47382a47dedd827f80cba67c0d255}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class B address space (128.0.0.0/2). 

This method applies only for \hyperlink{classIPv4}{IPv4}, and always returns false for \hyperlink{classIPv6}{IPv6}.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class B address. 
\end{DoxyReturn}
\hypertarget{classIPvX_afe114686304f222f91be5aa08af70402}{
\index{IPvX@{IPvX}!is\_\-class\_\-c@{is\_\-class\_\-c}}
\index{is\_\-class\_\-c@{is\_\-class\_\-c}!IPvX@{IPvX}}
\subsubsection[{is\_\-class\_\-c}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-class\_\-c (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_afe114686304f222f91be5aa08af70402}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class C address space (192.0.0.0/3). 

This method applies only for \hyperlink{classIPv4}{IPv4}, and always returns false for \hyperlink{classIPv6}{IPv6}.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class C address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a43f6a546581648778363358a6ba01ff1}{
\index{IPvX@{IPvX}!is\_\-experimental@{is\_\-experimental}}
\index{is\_\-experimental@{is\_\-experimental}!IPvX@{IPvX}}
\subsubsection[{is\_\-experimental}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-experimental (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a43f6a546581648778363358a6ba01ff1}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} experimental Class E address space (240.0.0.0/4). 

This method applies only for \hyperlink{classIPv4}{IPv4}, and always returns false for \hyperlink{classIPv6}{IPv6}.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid experimental address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a7bd1ce107a8497dd812088f55ebca07a}{
\index{IPvX@{IPvX}!is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}}
\index{is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-interfacelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-interfacelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a7bd1ce107a8497dd812088f55ebca07a}


Test if this address is a valid interface-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is interface-\/local. 
\end{DoxyReturn}
\hypertarget{classIPvX_a3b2fef82278213bdfef1f2941693f628}{
\index{IPvX@{IPvX}!is\_\-ipv4@{is\_\-ipv4}}
\index{is\_\-ipv4@{is\_\-ipv4}!IPvX@{IPvX}}
\subsubsection[{is\_\-ipv4}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-ipv4 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a3b2fef82278213bdfef1f2941693f628}


Test if this address is \hyperlink{classIPv4}{IPv4} address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is \hyperlink{classIPv4}{IPv4}. 
\end{DoxyReturn}
\hypertarget{classIPvX_a741f2ec70a28c732143564a4459a9f61}{
\index{IPvX@{IPvX}!is\_\-ipv6@{is\_\-ipv6}}
\index{is\_\-ipv6@{is\_\-ipv6}!IPvX@{IPvX}}
\subsubsection[{is\_\-ipv6}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-ipv6 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a741f2ec70a28c732143564a4459a9f61}


Test if this address is \hyperlink{classIPv6}{IPv6} address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is \hyperlink{classIPv6}{IPv6}. 
\end{DoxyReturn}
\hypertarget{classIPvX_ae583dca86d8b75fcaaccfe248ef4c1f9}{
\index{IPvX@{IPvX}!is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}}
\index{is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-linklocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-linklocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_ae583dca86d8b75fcaaccfe248ef4c1f9}


Test if this address is a valid link-\/local multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPvX_a7453648dc1c61b8459da0bd363fcdfd7}{
\index{IPvX@{IPvX}!is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}}
\index{is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-linklocal\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-linklocal\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a7453648dc1c61b8459da0bd363fcdfd7}


Test if this address is a valid link-\/local unicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPvX_ab0372aef8a9dde5a2eba43b0a8d0183a}{
\index{IPvX@{IPvX}!is\_\-loopback@{is\_\-loopback}}
\index{is\_\-loopback@{is\_\-loopback}!IPvX@{IPvX}}
\subsubsection[{is\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-loopback (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_ab0372aef8a9dde5a2eba43b0a8d0183a}


Test if this address is a valid loopback address. 

\begin{DoxyReturn}{Returns}
true if this address is a valid loopback address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a68b5939ae1d6a133a91525e6636e3230}{
\index{IPvX@{IPvX}!is\_\-multicast@{is\_\-multicast}}
\index{is\_\-multicast@{is\_\-multicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a68b5939ae1d6a133a91525e6636e3230}


Test if this address is a valid multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a5461ed42ed940263be01bba6843343c4}{
\index{IPvX@{IPvX}!is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}}
\index{is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-nodelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-nodelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a5461ed42ed940263be01bba6843343c4}


Test if this address is a valid node-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513. This method is kept for backward compatibility.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is node-\/local. 
\end{DoxyReturn}
\hypertarget{classIPvX_ae514da5c53adf3d5c3f9fa7158f7fd03}{
\index{IPvX@{IPvX}!is\_\-unicast@{is\_\-unicast}}
\index{is\_\-unicast@{is\_\-unicast}!IPvX@{IPvX}}
\subsubsection[{is\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_ae514da5c53adf3d5c3f9fa7158f7fd03}


Test if this address is a valid unicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address. 
\end{DoxyReturn}
\hypertarget{classIPvX_ae8b4e8dc8bf293f564fea7309e3b68fa}{
\index{IPvX@{IPvX}!is\_\-zero@{is\_\-zero}}
\index{is\_\-zero@{is\_\-zero}!IPvX@{IPvX}}
\subsubsection[{is\_\-zero}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::is\_\-zero (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_ae8b4e8dc8bf293f564fea7309e3b68fa}


Test if this address is numerically zero. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is numerically zero. 
\end{DoxyReturn}
\hypertarget{classIPvX_ac31a7646fb6c00affc4241dcd4615745}{
\index{IPvX@{IPvX}!leading\_\-zero\_\-count@{leading\_\-zero\_\-count}}
\index{leading\_\-zero\_\-count@{leading\_\-zero\_\-count}!IPvX@{IPvX}}
\subsubsection[{leading\_\-zero\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::leading\_\-zero\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_ac31a7646fb6c00affc4241dcd4615745}


Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a0f9a9cb829326b696f4990f142ab5ca7}{
\index{IPvX@{IPvX}!make\_\-prefix@{make\_\-prefix}}
\index{make\_\-prefix@{make\_\-prefix}!IPvX@{IPvX}}
\subsubsection[{make\_\-prefix}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::make\_\-prefix (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{mask\_\-len}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPvX_a0f9a9cb829326b696f4990f142ab5ca7}


Make an \hyperlink{classIPvX}{IPvX} mask prefix for \hyperlink{protocolthe-p}{the} address family of this address. 


\begin{DoxyParams}{Parameters}
{\em mask\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPvX}{IPvX} address that contains a mask of length \hyperlink{classIPvX_ab5479ee4534702d3f1c75f55f7bbfd65}{mask\_\-len}. 
\end{DoxyReturn}
\hypertarget{classIPvX_a26017c21d537dfe84e4fe099b6805bc2}{
\index{IPvX@{IPvX}!make\_\-prefix@{make\_\-prefix}}
\index{make\_\-prefix@{make\_\-prefix}!IPvX@{IPvX}}
\subsubsection[{make\_\-prefix}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::make\_\-prefix (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{uint32\_\-t}]{mask\_\-len}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily}, {\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPvX_a26017c21d537dfe84e4fe099b6805bc2}


Make an \hyperlink{classIPvX}{IPvX} mask prefix. 


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family. \\
\hline
{\em mask\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPvX}{IPvX} address that contains a mask of length \hyperlink{classIPvX_ab5479ee4534702d3f1c75f55f7bbfd65}{mask\_\-len}. 
\end{DoxyReturn}
\hypertarget{classIPvX_aaee739fe1e3c9288a5c1c2cea007eba1}{
\index{IPvX@{IPvX}!mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}}
\index{mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}!IPvX@{IPvX}}
\subsubsection[{mask\_\-by\_\-prefix\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::mask\_\-by\_\-prefix\_\-len (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{prefix\_\-len}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidNetmaskLength})}}
\label{classIPvX_aaee739fe1e3c9288a5c1c2cea007eba1}


Make an \hyperlink{classIPvX}{IPvX} address prefix. 


\begin{DoxyParams}{Parameters}
{\em prefix\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask of \hyperlink{protocolthe-p}{the} prefix to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPvX}{IPvX} address created by masking this address with a mask of length prefix\_\-len. 
\end{DoxyReturn}
\hypertarget{classIPvX_ab5479ee4534702d3f1c75f55f7bbfd65}{
\index{IPvX@{IPvX}!mask\_\-len@{mask\_\-len}}
\index{mask\_\-len@{mask\_\-len}!IPvX@{IPvX}}
\subsubsection[{mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPvX::mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_ab5479ee4534702d3f1c75f55f7bbfd65}


Get \hyperlink{protocolthe-p}{the} mask length. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} prefix length of \hyperlink{protocolthe-p}{the} contiguous mask presumably stored as an \hyperlink{classIPvX}{IPvX} address. 
\end{DoxyReturn}
\hypertarget{classIPvX_a4f8645ff4458e031d39a49b310227abb}{
\index{IPvX@{IPvX}!operator!=@{operator!=}}
\index{operator!=@{operator!=}!IPvX@{IPvX}}
\subsubsection[{operator!=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a4f8645ff4458e031d39a49b310227abb}


Not-\/Equal Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically not same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPvX_aff2fd865a7e6e7bb3f21680152fd4ba8}{
\index{IPvX@{IPvX}!operator\&@{operator\&}}
\index{operator\&@{operator\&}!IPvX@{IPvX}}
\subsubsection[{operator\&}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator\& (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})}}
\label{classIPvX_aff2fd865a7e6e7bb3f21680152fd4ba8}


AND Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to AND with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise AND of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPvX_a7fa9efac9604757299c7240e38792c2b}{
\index{IPvX@{IPvX}!operator++@{operator++}}
\index{operator++@{operator++}!IPvX@{IPvX}}
\subsubsection[{operator++}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} \& IPvX::operator++ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPvX_a7fa9efac9604757299c7240e38792c2b}


Increment Operator. 

The numerical value of this address is incremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} increment was all-\/1s, after \hyperlink{protocolthe-p}{the} increment its value would be all-\/0s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was incremented by one. 
\end{DoxyReturn}
\hypertarget{classIPvX_ab1e062d49324d0d024391b23683ea580}{
\index{IPvX@{IPvX}!operator-\/-\/@{operator-\/-\/}}
\index{operator-\/-\/@{operator-\/-\/}!IPvX@{IPvX}}
\subsubsection[{operator-\/-\/}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} \& IPvX::operator-\/-\/ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPvX_ab1e062d49324d0d024391b23683ea580}


Decrement Operator. 

The numerical value of this address is decremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} decrement was all-\/0s, after \hyperlink{protocolthe-p}{the} decrement its value would be all-\/1s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was decremented by one. 
\end{DoxyReturn}
\hypertarget{classIPvX_a234d7eb99e186ace2db8464e8836ec96}{
\index{IPvX@{IPvX}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!IPvX@{IPvX}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a234d7eb99e186ace2db8464e8836ec96}


Less-\/Than Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically smaller than \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPvX_af0b69414244643a9b8487955a27c0417}{
\index{IPvX@{IPvX}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!IPvX@{IPvX}}
\subsubsection[{operator$<$$<$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{left\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_af0b69414244643a9b8487955a27c0417}


Operator $<$$<$. 


\begin{DoxyParams}{Parameters}
{\em left\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} left. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPvX}{IPvX} address that is shift bitwise to \hyperlink{protocolthe-p}{the} left. 
\end{DoxyReturn}
\hypertarget{classIPvX_a9ef5c3d113ad87e9759c359803e950f6}{
\index{IPvX@{IPvX}!operator==@{operator==}}
\index{operator==@{operator==}!IPvX@{IPvX}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool IPvX::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a9ef5c3d113ad87e9759c359803e950f6}


Equality Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPvX_a25d1cd3474a664461b7932941e4f2279}{
\index{IPvX@{IPvX}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!IPvX@{IPvX}}
\subsubsection[{operator$>$$>$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator$>$$>$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{right\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a25d1cd3474a664461b7932941e4f2279}


Operator $>$$>$ 


\begin{DoxyParams}{Parameters}
{\em right\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} right. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPvX}{IPvX} address that is shift bitwise to \hyperlink{protocolthe-p}{the} right. 
\end{DoxyReturn}
\hypertarget{classIPvX_a4cf324b7786a6a085296a24eb5501f06}{
\index{IPvX@{IPvX}!operator$^\wedge$@{operator$^\wedge$}}
\index{operator$^\wedge$@{operator$^\wedge$}!IPvX@{IPvX}}
\subsubsection[{operator$^\wedge$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator$^\wedge$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})}}
\label{classIPvX_a4cf324b7786a6a085296a24eb5501f06}


XOR Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to XOR with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwize eXclusive-\/OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPvX_a130db0cb7712fada3a3b1797bf96f46a}{
\index{IPvX@{IPvX}!operator$|$@{operator$|$}}
\index{operator$|$@{operator$|$}!IPvX@{IPvX}}
\subsubsection[{operator$|$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator$|$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{other}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidCast})}}
\label{classIPvX_a130db0cb7712fada3a3b1797bf96f46a}


OR Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to OR with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPvX_a974b6acc5b9450a5e7660252946d5058}{
\index{IPvX@{IPvX}!operator$\sim$@{operator$\sim$}}
\index{operator$\sim$@{operator$\sim$}!IPvX@{IPvX}}
\subsubsection[{operator$\sim$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPvX} IPvX::operator$\sim$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a974b6acc5b9450a5e7660252946d5058}


Bitwise-\/Negation Operator. 

\begin{DoxyReturn}{Returns}
address complement (i.e., all 0s become 1s, and vice-\/versa). 
\end{DoxyReturn}
\hypertarget{classIPvX_a342eb2195b9e1ad0219d98cb0c2ea881}{
\index{IPvX@{IPvX}!str@{str}}
\index{str@{str}!IPvX@{IPvX}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}string IPvX::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPvX_a342eb2195b9e1ad0219d98cb0c2ea881}


Convert this address from binary form to presentation format. 

\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipvx.hh\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipvx.cc\end{DoxyCompactItemize}
