IInterfaceTable Class Reference

#include <IInterfaceTable.h>

Inheritance diagram for IInterfaceTable:

InterfaceTable

List of all members.


Detailed Description

A C++ interface to abstract the functionality of IInterfaceTable. Referring to IInterfaceTable via this interface makes it possible to transparently replace IInterfaceTable with a different implementation, without any change to the base INET.

See also:
IInterfaceTable, InterfaceEntry

Public Member Functions

virtual ~IInterfaceTable ()
virtual std::string getFullPath () const =0
virtual void addInterface (InterfaceEntry *entry, cModule *ifmod)=0
virtual void deleteInterface (InterfaceEntry *entry)=0
virtual int getNumInterfaces ()=0
virtual InterfaceEntrygetInterface (int pos)=0
virtual InterfaceEntrygetInterfaceById (int id)=0
virtual InterfaceEntrygetInterfaceByNodeOutputGateId (int id)=0
virtual InterfaceEntrygetInterfaceByNodeInputGateId (int id)=0
virtual InterfaceEntrygetInterfaceByNetworkLayerGateIndex (int index)=0
virtual InterfaceEntrygetInterfaceByName (const char *name)=0
virtual InterfaceEntrygetFirstLoopbackInterface ()=0

Protected Member Functions

virtual void interfaceChanged (InterfaceEntry *entry, int category)=0

Friends

class InterfaceEntry

Constructor & Destructor Documentation

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

00043 {}


Member Function Documentation

virtual void IInterfaceTable::interfaceChanged ( InterfaceEntry entry,
int  category 
) [protected, pure virtual]

Implemented in InterfaceTable.

Referenced by InterfaceEntry::changed().

virtual std::string IInterfaceTable::getFullPath (  )  const [pure virtual]

virtual void IInterfaceTable::addInterface ( InterfaceEntry entry,
cModule *  ifmod 
) [pure virtual]

Adds an interface. The second argument should be a module which belongs to the physical interface (e.g. PPP or EtherMac) -- it will be used to discover and fill in getNetworkLayerGateIndex(), getNodeOutputGateId(), and getNodeInputGateId() in InterfaceEntry. It should be NULL if this is a virtual interface (e.g. loopback).

Implemented in InterfaceTable.

Referenced by PPP::registerInterface(), Mac80211::registerInterface(), Ieee80211Mac::registerInterface(), ExtInterface::registerInterface(), EtherMACBase::registerInterface(), and CSMAMacLayer::registerInterface().

virtual void IInterfaceTable::deleteInterface ( InterfaceEntry entry  )  [pure virtual]

Deletes the given interface from the table. Indices of existing interfaces (see getInterface(int)) may change. It is an error if the given interface is not in the table.

Implemented in InterfaceTable.

virtual int IInterfaceTable::getNumInterfaces (  )  [pure virtual]

virtual InterfaceEntry* IInterfaceTable::getInterface ( int  pos  )  [pure virtual]

virtual InterfaceEntry* IInterfaceTable::getInterfaceById ( int  id  )  [pure virtual]

virtual InterfaceEntry* IInterfaceTable::getInterfaceByNodeOutputGateId ( int  id  )  [pure virtual]

Returns an interface given by its getNodeOutputGateId(). Returns NULL if not found.

Implemented in InterfaceTable.

Referenced by FlatNetworkConfigurator6::addStaticRoutes(), and FlatNetworkConfigurator::fillRoutingTables().

virtual InterfaceEntry* IInterfaceTable::getInterfaceByNodeInputGateId ( int  id  )  [pure virtual]

Returns an interface given by its getNodeInputGateId(). Returns NULL if not found.

Implemented in InterfaceTable.

Referenced by FlatNetworkConfigurator6::addStaticRoutes().

virtual InterfaceEntry* IInterfaceTable::getInterfaceByNetworkLayerGateIndex ( int  index  )  [pure virtual]

Returns an interface given by its getNetworkLayerGateIndex(). Returns NULL if not found.

Implemented in InterfaceTable.

Referenced by IPv6::getSourceInterfaceFrom(), IP::getSourceInterfaceFrom(), and MPLS::processMPLSPacketFromL2().

virtual InterfaceEntry* IInterfaceTable::getInterfaceByName ( const char *  name  )  [pure virtual]

virtual InterfaceEntry* IInterfaceTable::getFirstLoopbackInterface (  )  [pure virtual]

Returns the first interface with the isLoopback flag set. (If there's no loopback, it returns NULL -- but this should never happen because IInterfaceTable itself registers a loopback interface on startup.)

Implemented in InterfaceTable.

Referenced by RoutingTable::configureLoopbackForIPv4(), and RoutingTable::configureRouterId().


Friends And Related Function Documentation

friend class InterfaceEntry [friend]


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

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