#include <module.h>

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 Module * | createFromLibrary (cstr libraryName) |
Data Fields | |
| ModuleConfig | oldConfig |
Protected Member Functions | |
| ModuleManager * | getModuleManager () |
| void | setModuleManager (ModuleManager *mm) |
Protected Attributes | |
| volatile bool | exiting |
| Session * | session |
| Session * | qtSession |
| Session * | asyncSession |
| set< string > | pendingConfigurableProperties |
| string | moduleName |
| string | library |
| ModuleManager * | moduleManager |
Friends | |
| class | ModuleManager |
| RDK2::RAgent::Module::~Module | ( | ) | [virtual] |
Definition at line 55 of file module.cpp.
| virtual bool RDK2::RAgent::Module::initConfigurationProperties | ( | ) | [inline, virtual] |
| 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
| virtual void RDK2::RAgent::Module::exitRequested | ( | ) | [inline, virtual] |
| virtual void RDK2::RAgent::Module::cleanup | ( | ) | [inline, virtual] |
| void RDK2::RAgent::Module::requestExit | ( | ) |
| string RDK2::RAgent::Module::getModuleName | ( | ) | [inline] |
| void RDK2::RAgent::Module::setSession | ( | Session * | session | ) | [inline] |
| void RDK2::RAgent::Module::setQtSession | ( | Session * | qtSession | ) | [inline] |
| void RDK2::RAgent::Module::setAsyncSession | ( | Session * | asyncSession | ) | [inline] |
Definition at line 32 of file module.cpp.
References MODULE_FACTORY_FUNCTION, RDK2::TextUtils::normalizeLibraryName(), and RDK_ERROR_PRINTF.

| void RDK2::RAgent::Module::initWithModuleConfig | ( | const ModuleConfig & | cm, | |
| bool | configureOnlyPendingProperties = false | |||
| ) |
Definition at line 168 of file module.cpp.
References RDK2::Containers::Vector< RType >::begin(), RDK2::Containers::Vector< RType >::end(), RDK2::RepositoryNS::PropertyDef::isKeepThis(), RDK2::RepositoryNS::PropertyDef::isPersistent(), RDK2::RepositoryNS::PropertyDef::isVolatile(), RDK2::RAgent::ModuleConfig::library, RDK2::RAgent::ModuleConfig::moduleName, RDK2::RAgent::ModuleConfig::objConfigs, RDK_ERROR_PRINTF, SESSION_CATCH, SESSION_END_CATCH_TERMINATE, SESSION_TRY_START, and RDK2::RAgent::ModuleConfig::userOptions.
Referenced by RDK2::RAgent::ModuleManager::instantiateAdditionalModule().

| ModuleConfig RDK2::RAgent::Module::createModuleConfig | ( | ) |
Definition at line 60 of file module.cpp.
References RDK2::Containers::Vector< RType >::begin(), RDK2::RAgent::ModuleConfig::descriptions, RDK2::Containers::Vector< RType >::end(), RDK2::RepositoryNS::PropertyDef::getLinkTo(), RDK2::RepositoryNS::Repository::getLocalPropertiesStartingWith(), RDK2::Object::getStringRepresentation(), RDK2::Object::hasStringRepresentation(), RDK2::RepositoryNS::PropertyDef::isKeepThis(), RDK2::RepositoryNS::PropertyDef::isLink(), RDK2::RepositoryNS::PropertyDef::isPersistent(), RDK2::RepositoryNS::PropertyDef::isVolatile(), RDK2::RAgent::ModuleConfig::library, RDK2::RAgent::ModuleConfig::moduleName, RDK2::RAgent::ModuleConfig::objConfigs, RDK2::Containers::Vector< RType >::push_back(), SESSION_END_CATCH_TERMINATE, SESSION_TRY_START, RDK2::RAgent::ModuleConfig::textObjConfigs, and RDK2::RAgent::ModuleConfig::userOptions.

| ModuleManager* RDK2::RAgent::Module::getModuleManager | ( | ) | [inline, protected] |
| void RDK2::RAgent::Module::setModuleManager | ( | ModuleManager * | mm | ) | [inline, protected] |
friend class ModuleManager [friend] |
volatile bool RDK2::RAgent::Module::exiting [protected] |
Session* RDK2::RAgent::Module::session [protected] |
Session* RDK2::RAgent::Module::qtSession [protected] |
Session* RDK2::RAgent::Module::asyncSession [protected] |
set<string> RDK2::RAgent::Module::pendingConfigurableProperties [protected] |
string RDK2::RAgent::Module::moduleName [protected] |
string RDK2::RAgent::Module::library [protected] |
ModuleManager* RDK2::RAgent::Module::moduleManager [protected] |
1.5.6