Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions

IPv4InterfaceData Class Reference

#include <IPv4InterfaceData.h>

Inheritance diagram for IPv4InterfaceData:
InterfaceProtocolData

List of all members.

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
bool isMemberOfMulticastGroup (const IPAddress &multicastAddress) 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)

Detailed Description

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

See also:
InterfaceEntry

Definition at line 39 of file IPv4InterfaceData.h.


Member Typedef Documentation

Definition at line 42 of file IPv4InterfaceData.h.


Constructor & Destructor Documentation

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

Definition at line 33 of file IPv4InterfaceData.cc.

{
    static const IPAddress allOnes("255.255.255.255");
    netmask = allOnes;

    metric = 0;

    // TBD add default multicast groups!
}

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

Definition at line 60 of file IPv4InterfaceData.h.

{}


Member Function Documentation

void IPv4InterfaceData::changed1 (  )  [inline, protected]
std::string IPv4InterfaceData::detailedInfo (  )  const [virtual]

Definition at line 58 of file IPv4InterfaceData.cc.

{
    std::stringstream out;
    out << "inet addr:" << getIPAddress() << "\tMask: " << getNetmask() << "\n";

    out << "Metric: " << getMetric() << "\n";

    out << "Groups:";
    for (unsigned int j=0; j<getMulticastGroups().size(); j++)
        if (!getMulticastGroups()[j].isUnspecified())
            out << "  " << getMulticastGroups()[j];
    out << "\n";
    return out.str();
}

int IPv4InterfaceData::getMetric (  )  const [inline]

Definition at line 68 of file IPv4InterfaceData.h.

Referenced by detailedInfo(), TED::initialize(), and RoutingTable::updateNetmaskRoutes().

{return metric;}

const IPAddressVector& IPv4InterfaceData::getMulticastGroups (  )  const [inline]
IPAddress IPv4InterfaceData::getNetmask (  )  const [inline]
std::string IPv4InterfaceData::info (  )  const [virtual]

Definition at line 43 of file IPv4InterfaceData.cc.

{
    std::stringstream out;
    out << "IP:{inet_addr:" << getIPAddress() << "/" << getNetmask().getNetmaskLength();
    if (!getMulticastGroups().empty())
    {
        out << " mcastgrps:";
        for (unsigned int j=0; j<getMulticastGroups().size(); j++)
            if (!getMulticastGroups()[j].isUnspecified())
                out << (j>0?",":"") << getMulticastGroups()[j];
    }
    out << "}";
    return out.str();
}

bool IPv4InterfaceData::isMemberOfMulticastGroup ( const IPAddress multicastAddress  )  const

Definition at line 73 of file IPv4InterfaceData.cc.

Referenced by RoutingTable::isLocalMulticastAddress().

{
    int n = getMulticastGroups().size();
    for (int i=0; i<n; i++)
        if (multicastAddress.equals(getMulticastGroups()[i]))
            return true;
    return false;
}

IPv4InterfaceData& IPv4InterfaceData::operator= ( const IPv4InterfaceData obj  )  [private]
virtual void IPv4InterfaceData::setMetric ( int  m  )  [inline, virtual]
virtual void IPv4InterfaceData::setMulticastGroups ( const IPAddressVector v  )  [inline, virtual]

Definition at line 78 of file IPv4InterfaceData.h.

Referenced by RoutingTableParser::parseMulticastGroups().


Member Data Documentation

IP address of interface.

Definition at line 45 of file IPv4InterfaceData.h.

int IPv4InterfaceData::metric [protected]

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

Definition at line 47 of file IPv4InterfaceData.h.

Referenced by IPv4InterfaceData().

multicast groups

Definition at line 48 of file IPv4InterfaceData.h.

netmask

Definition at line 46 of file IPv4InterfaceData.h.

Referenced by IPv4InterfaceData().


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