IPv4InterfaceData Class Reference

#include <IPv4InterfaceData.h>

Inheritance diagram for IPv4InterfaceData:

InterfaceProtocolData

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
Getters


IPAddress getIPAddress () const
IPAddress getNetmask () const
int getMetric () const
const IPAddressVectorgetMulticastGroups () const
Setters


virtual void setIPAddress (IPAddress a)
virtual void setNetmask (IPAddress m)
virtual void setMetric (int m)
virtual void setMulticastGroups (const IPAddressVector &v)

Protected Member Functions

void changed1 ()

Protected 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

Private Member Functions

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

Member Typedef Documentation


Constructor & Destructor Documentation

IPv4InterfaceData::IPv4InterfaceData ( const IPv4InterfaceData obj  )  [private]

IPv4InterfaceData::IPv4InterfaceData (  ) 

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

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

00060 {}


Member Function Documentation

void IPv4InterfaceData::changed1 (  )  [inline, protected]

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

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

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

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

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

IPAddress IPv4InterfaceData::getIPAddress (  )  const [inline]

IPAddress IPv4InterfaceData::getNetmask (  )  const [inline]

int IPv4InterfaceData::getMetric (  )  const [inline]

const IPAddressVector& IPv4InterfaceData::getMulticastGroups (  )  const [inline]

virtual void IPv4InterfaceData::setIPAddress ( IPAddress  a  )  [inline, virtual]

virtual void IPv4InterfaceData::setNetmask ( IPAddress  m  )  [inline, virtual]

virtual void IPv4InterfaceData::setMetric ( int  m  )  [inline, virtual]

virtual void IPv4InterfaceData::setMulticastGroups ( const IPAddressVector v  )  [inline, virtual]


Member Data Documentation

IP address of interface.

netmask

Referenced by IPv4InterfaceData().

int IPv4InterfaceData::metric [protected]

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

Referenced by IPv4InterfaceData().

multicast groups


The documentation for this class was generated from the following files:

Generated on Fri Mar 20 18:51:19 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5