ModuleAccess< T > Class Template Reference

#include <ModuleAccess.h>

List of all members.


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.

Public Member Functions

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

Private Attributes

const char * name
T * p

Constructor & Destructor Documentation

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

00062 {name = n; p=NULL;}

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

00063 {}


Member Function Documentation

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

Referenced by IP::fragmentAndSend(), IP::handlePacketFromNetwork(), SimpleClassifier::initialize(), LIBTable::initialize(), IP::initialize(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::processInitArrived(), OSPF::Router::RebuildRoutingTable(), IP::routePacket(), SCTPPathVariables::SCTPPathVariables(), IP::sendDatagramToOutput(), and SCTPAssociation::sendInit().

00066     {
00067         if (!p)
00068         {
00069             cModule *m = findModuleWhereverInNode(name, simulation.getContextModule());
00070             if (!m) opp_error("Module (%s)%s not found",opp_typename(typeid(T)),name);
00071             p = check_and_cast<T*>(m);
00072         }
00073         return p;
00074     }

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

00077     {
00078         if (!p)
00079         {
00080             cModule *m = findModuleWhereverInNode(name, simulation.getContextModule());
00081             p = dynamic_cast<T*>(m);
00082         }
00083         return p;
00084     }


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:

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