INET Framework for OMNeT++/OMNEST
ModuleAccess< T > Class Template Reference

#include <ModuleAccess.h>

List of all members.

Public Member Functions

 ModuleAccess (const char *n)
virtual ~ModuleAccess ()
virtual T * get ()
virtual T * getIfExists ()

Private Attributes

const char * name
T * p

Detailed Description

template<typename T>
class ModuleAccess< T >

Finds and returns the pointer to a module of type T and name N. Uses findModuleWherever(). See usage e.g. at RoutingTableAccess.

Definition at line 54 of file ModuleAccess.h.


Constructor & Destructor Documentation

template<typename T>
ModuleAccess< T >::ModuleAccess ( const char *  n) [inline]

Definition at line 62 of file ModuleAccess.h.

{name = n; p=NULL;}
template<typename T>
virtual ModuleAccess< T >::~ModuleAccess ( ) [inline, virtual]

Definition at line 63 of file ModuleAccess.h.

{}

Member Function Documentation

template<typename T>
virtual T* ModuleAccess< T >::get ( ) [inline, virtual]

Definition at line 65 of file ModuleAccess.h.

Referenced by ANSAQOS::ACLClassifier::ACLClassifier(), AnsaOSPF::RoutingTableEntry::AddNextHop(), AnsaOspf6::RoutingTableEntry::AddNextHop(), OSPF::RoutingTableEntry::AddNextHop(), TrafGen::detectRoles(), IP::fragmentAndSend(), AnsaIP::handlePacketFromNetwork(), IP::handlePacketFromNetwork(), pimSplitter::initialize(), DscpTtlCorrector::initialize(), DeviceConfigurator::initialize(), InterfaceStateManager::initialize(), MPLS::initialize(), NAMTraceWriter::initialize(), Ieee80211AgentSTA::initialize(), AnsaRoutingTable6::initialize(), WirelessMacBase::initialize(), OSPFRouting::initialize(), SimpleClassifier::initialize(), AnsaOspfRouting6::initialize(), LIBTable::initialize(), Ieee80211MgmtAP::initialize(), TED::initialize(), AnsaOSPFRouting::initialize(), LinkStateRouting::initialize(), BasicModule::initialize(), PPP::initialize(), AnsaPPP::initialize(), ARP::initialize(), InterfaceTable::initialize(), AnsaInterfaceTable::initialize(), Ieee80211MgmtSTA::initialize(), acl::initialize(), IGMP::initialize(), RoutingTable::initialize(), IPv6::initialize(), IPv6NeighbourDiscovery::initialize(), RIPRouting::initialize(), AnsaRoutingTable::initialize(), RoutingTable6::initialize(), IP::initialize(), LDP::initialize(), RSVP::initialize(), ISIS::initialize(), AnsaEtherMACBase::initializeNotificationBoard(), acl::loadConfigFromXML(), AclContainer::loadConfigFromXML(), AnsaQosSystem::loadConfigFromXML(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::processInitArrived(), UDP::processUndeliverablePacket(), AnsaUDP::processUndeliverablePacket(), AnsaOSPF::Router::RebuildRoutingTable(), OSPF::Router::RebuildRoutingTable(), ExtInterface::registerInterface(), PPP::registerInterface(), AnsaPPP::registerInterface(), Mac80211::registerInterface(), CSMAMacLayer::registerInterface(), IP::routePacket(), SCTPPathVariables::SCTPPathVariables(), IP::sendDatagramToOutput(), SCTPAssociation::sendInit(), AnsaOSPF::Interface::SetIfIndex(), OSPF::Interface::SetIfIndex(), AnsaOspf6::Interface::SetIfIndex(), AnsaOSPF::Router::UpdateExternalRoute(), and OSPF::Router::UpdateExternalRoute().

    {
        if (!p)
        {
            cModule *m = findModuleWhereverInNode(name, simulation.getContextModule());
            if (!m) opp_error("Module (%s)%s not found",opp_typename(typeid(T)),name);
            p = check_and_cast<T*>(m);
        }
        return p;
    }
template<typename T>
virtual T* ModuleAccess< T >::getIfExists ( ) [inline, virtual]

Definition at line 76 of file ModuleAccess.h.

Referenced by EtherMACBase::initializeNotificationBoard(), EtherMACBase::registerInterface(), AnsaEtherMACBase::registerInterface(), and Ieee80211Mac::registerInterface().

    {
        if (!p)
        {
            cModule *m = findModuleWhereverInNode(name, simulation.getContextModule());
            p = dynamic_cast<T*>(m);
        }
        return p;
    }

Member Data Documentation

template<typename T>
const char* ModuleAccess< T >::name [private]
template<typename T>
T* ModuleAccess< T >::p [private]

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