RDK2::RAgent::Module Class Reference

#include <module.h>

Collaboration diagram for RDK2::RAgent::Module:

Collaboration graph
[legend]

Detailed Description

This is the base class of each RDK module.

Definition at line 79 of file module.h.


Public Member Functions

 Module ()
virtual bool initConfigurationProperties ()
virtual bool initInterfaceProperties ()
virtual bool init ()
void start ()
 Instantiates module thread that will call exec().
virtual void exec ()=0
 ASSUMPTION: all modules init()-ed succesfully.
virtual void asyncAgentCmd (cstr)
virtual void exitRequested ()
virtual void cleanup ()
void requestExit ()
virtual ~Module ()
string getModuleName ()
void setSession (Session *session)
void setQtSession (Session *qtSession)
void setAsyncSession (Session *asyncSession)
void initWithModuleConfig (const ModuleConfig &cm, bool configureOnlyPendingProperties=false)
ModuleConfig createModuleConfig ()

Static Public Member Functions

static ModulecreateFromLibrary (cstr libraryName)

Data Fields

ModuleConfig oldConfig

Protected Member Functions

ModuleManagergetModuleManager ()
void setModuleManager (ModuleManager *mm)

Protected Attributes

volatile bool exiting
Sessionsession
SessionqtSession
SessionasyncSession
set< string > pendingConfigurableProperties
string moduleName
string library
ModuleManagermoduleManager

Friends

class ModuleManager

Constructor & Destructor Documentation

RDK2::RAgent::Module::Module (  )  [inline]

Definition at line 82 of file module.h.

RDK2::RAgent::Module::~Module (  )  [virtual]

Definition at line 55 of file module.cpp.


Member Function Documentation

virtual bool RDK2::RAgent::Module::initConfigurationProperties (  )  [inline, virtual]

Declare configuration properties.

This method should have a very short execution time.

ASSUMPTIONS: this module can't make any assumption.

Definition at line 93 of file module.h.

virtual bool RDK2::RAgent::Module::initInterfaceProperties (  )  [inline, virtual]

Declare properties and queues that interface to other modules.

ASSUMPTIONS: configuration was loaded, but no assumption can be made about other modules.

FIXME DC: le properties di interfaccia non vengono salvate? (anzi, non vengono caricate, in questo caso)

Definition at line 104 of file module.h.

Referenced by RDK2::RAgent::ModuleManager::instantiateAdditionalModule().

virtual bool RDK2::RAgent::Module::init (  )  [inline, virtual]

Inizializzazione risorse (apri file, socket, ecc) ASSUNZIONI: gli altri moduli sono stati caricati e le loro proprietà create. I moduli elencati prima di te hanno fatto init() con successo. Initialize resources (open files, sockets, etc.)

ASSUMPTIONS: other modules are loaded and their properties are created. Modules listed before this have succesfully init()-ed.

Definition at line 117 of file module.h.

Referenced by RDK2::RAgent::ModuleManager::instantiateAdditionalModule().

void RDK2::RAgent::Module::start (  ) 

Instantiates module thread that will call exec().

Referenced by RDK2::RAgent::ModuleManager::instantiateAdditionalModule().

virtual void RDK2::RAgent::Module::exec (  )  [pure virtual]

ASSUMPTION: all modules init()-ed succesfully.

virtual void RDK2::RAgent::Module::asyncAgentCmd ( cstr   )  [inline, virtual]

This method should follow what's written in the wiki page http://sied.dis.uniroma1.it/private/doku.php?id=rdk:robot_modules

Definition at line 129 of file module.h.

virtual void RDK2::RAgent::Module::exitRequested (  )  [inline, virtual]

when this function exits, the module manager can safely call pthread_join the user should implement this only if the module has something to be closed before the thread is joined (e.g.: close sockets)

Definition at line 134 of file module.h.

virtual void RDK2::RAgent::Module::cleanup (  )  [inline, virtual]

Definition at line 136 of file module.h.

void RDK2::RAgent::Module::requestExit (  ) 

string RDK2::RAgent::Module::getModuleName (  )  [inline]

Definition at line 143 of file module.h.

References moduleName.

void RDK2::RAgent::Module::setSession ( Session session  )  [inline]

Definition at line 147 of file module.h.

void RDK2::RAgent::Module::setQtSession ( Session qtSession  )  [inline]

Definition at line 148 of file module.h.

void RDK2::RAgent::Module::setAsyncSession ( Session asyncSession  )  [inline]

Definition at line 149 of file module.h.

Module * RDK2::RAgent::Module::createFromLibrary ( cstr  libraryName  )  [static]

Definition at line 32 of file module.cpp.

References MODULE_FACTORY_FUNCTION, RDK2::TextUtils::normalizeLibraryName(), and RDK_ERROR_PRINTF.

Here is the call graph for this function:

void RDK2::RAgent::Module::initWithModuleConfig ( const ModuleConfig cm,
bool  configureOnlyPendingProperties = false 
)

ModuleConfig RDK2::RAgent::Module::createModuleConfig (  ) 

ModuleManager* RDK2::RAgent::Module::getModuleManager (  )  [inline, protected]

Definition at line 170 of file module.h.

References moduleManager.

void RDK2::RAgent::Module::setModuleManager ( ModuleManager mm  )  [inline, protected]

Definition at line 171 of file module.h.

References moduleManager.


Friends And Related Function Documentation

friend class ModuleManager [friend]

Definition at line 177 of file module.h.


Field Documentation

Definition at line 156 of file module.h.

volatile bool RDK2::RAgent::Module::exiting [protected]

Definition at line 159 of file module.h.

Definition at line 160 of file module.h.

Definition at line 161 of file module.h.

Definition at line 162 of file module.h.

Definition at line 164 of file module.h.

Definition at line 166 of file module.h.

Referenced by getModuleName().

string RDK2::RAgent::Module::library [protected]

Definition at line 166 of file module.h.

Definition at line 169 of file module.h.

Referenced by getModuleManager(), and setModuleManager().


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

Generated on Tue Mar 3 15:05:59 2009 for OpenRDK by  doxygen 1.5.6