Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

IPv4InterfaceData Class Reference

#include <IPv4InterfaceData.h>

List of all members.


Detailed Description

IPv4-specific data in an InterfaceEntry. Stores interface IP address, netmask, metric, etc.

See also:
InterfaceEntry


Public Types

typedef std::vector< IPAddressIPAddressVector

Public Member Functions

 IPv4InterfaceData ()
virtual ~IPv4InterfaceData ()
virtual std::string info () const
virtual std::string detailedInfo () const
IPAddress inetAddress () const
IPAddress netmask () const
int metric () const
const IPAddressVectormulticastGroups () const
void setInetAddress (IPAddress a)
void setNetmask (IPAddress m)
void setMetric (int m)
void setMulticastGroups (const IPAddressVector &v)

Private Member Functions

 IPv4InterfaceData (const IPv4InterfaceData &obj)
IPv4InterfaceDataoperator= (const IPv4InterfaceData &obj)

Private Attributes

IPAddress _inetAddr
 IP address of interface.
IPAddress _netmask
 netmask
int _metric
 link "cost"; see e.g. MS KB article Q299540
IPAddressVector _multicastGroups
 multicast groups


Member Typedef Documentation

typedef std::vector<IPAddress> IPv4InterfaceData::IPAddressVector
 


Constructor & Destructor Documentation

IPv4InterfaceData::IPv4InterfaceData const IPv4InterfaceData obj  )  [private]
 

IPv4InterfaceData::IPv4InterfaceData  ) 
 

00035 {
00036     static const IPAddress allOnes("255.255.255.255");
00037     _netmask = allOnes;
00038 
00039     _metric = 0;
00040 
00041     // TBD add default multicast groups!
00042 }

virtual IPv4InterfaceData::~IPv4InterfaceData  )  [inline, virtual]
 

00057 {}


Member Function Documentation

std::string IPv4InterfaceData::detailedInfo  )  const [virtual]
 

00060 {
00061     std::stringstream out;
00062     out << "inet addr:" << inetAddress() << "\tMask: " << netmask() << "\n";
00063 
00064     out << "Metric: " << metric() << "\n";
00065 
00066     out << "Groups:";
00067     for (unsigned int j=0; j<multicastGroups().size(); j++)
00068         if (!multicastGroups()[j].isUnspecified())
00069             out << "  " << multicastGroups()[j];
00070     out << "\n";
00071     return out.str();
00072 }

IPAddress IPv4InterfaceData::inetAddress  )  const [inline]
 

00061 {return _inetAddr;}

std::string IPv4InterfaceData::info  )  const [virtual]
 

00045 {
00046     std::stringstream out;
00047     out << "IP:{inet_addr:" << inetAddress() << "/" << netmask().netmaskLength();
00048     if (!multicastGroups().empty())
00049     {
00050         out << " mcastgrps:";
00051         for (unsigned int j=0; j<multicastGroups().size(); j++)
00052             if (!multicastGroups()[j].isUnspecified())
00053                 out << (j>0?",":"") << multicastGroups()[j];
00054     }
00055     out << "}";
00056     return out.str();
00057 }

int IPv4InterfaceData::metric  )  const [inline]
 

00063 {return _metric;}

const IPAddressVector& IPv4InterfaceData::multicastGroups  )  const [inline]
 

00064 {return _multicastGroups;}

IPAddress IPv4InterfaceData::netmask  )  const [inline]
 

00062 {return _netmask;}

IPv4InterfaceData& IPv4InterfaceData::operator= const IPv4InterfaceData obj  )  [private]
 

void IPv4InterfaceData::setInetAddress IPAddress  a  )  [inline]
 

00066 {_inetAddr = a;}

void IPv4InterfaceData::setMetric int  m  )  [inline]
 

00068 {_metric = m;}

void IPv4InterfaceData::setMulticastGroups const IPAddressVector v  )  [inline]
 

00069 {_multicastGroups = v;}

void IPv4InterfaceData::setNetmask IPAddress  m  )  [inline]
 

00067 {_netmask = m;}


Member Data Documentation

IPAddress IPv4InterfaceData::_inetAddr [private]
 

IP address of interface.

int IPv4InterfaceData::_metric [private]
 

link "cost"; see e.g. MS KB article Q299540

IPAddressVector IPv4InterfaceData::_multicastGroups [private]
 

multicast groups

IPAddress IPv4InterfaceData::_netmask [private]
 

netmask


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 20:52:22 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1