- Aldebaran documentation |
- C++ Libraries |
- index

libalcommon 2.8.7.4

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
AL::ALModuleCore Class Reference
Module

ALModuleCore is the superclass of user modules. More...

`#include "alcommon/almodulecore.h"`

## Public Types
enum | ModuleType { CPP = 0, PYTHON = 1, RUBY = 2, LUA = 3, MATLAB = 4, URBI }
| Module type (Ruby, lua, and matlab are not currently used) More...
typedef boost::shared_ptr < ALModuleCore > | Ptr
| Shared pointer to ALModuleCore. More...
typedef boost::weak_ptr < ALModuleCore > | WeakPtr
| Weak pointer to ALModuleCore. More...

## Public Member Functions
| ALModuleCore (boost::shared_ptr< ALBroker > pBroker, const std::string &pName)
| Constructor. More...
virtual | ~ALModuleCore ()
| Destructor. More...
ALMethodInfo & | getCurrentMethodDescription ()
| Get a reference to a temporary object used to construct method help. More...
boost::shared_ptr< ALModuleCore > | getThis ()
| Getter to the class. More...
boost::shared_ptr< const ALModuleCore > | getThis () const
| Getter to class. More...
bool | isClosing ()
| Check if someone want to exit the module. More...
void | initModule (void)
| Register a module to a broker. More...
boost::shared_ptr< AL::ALProxy > | getProxy (const std::string &pModuleName)
| Get access to a module. More...
std::string | getBrokerName ()
| Get the name of the registered broker. More...
ModuleType | getModuleType (void)
| Get the type of the module. More...
void | setModuleType (ModuleType pType)
| Set the type of the module. More...
virtual ALMethodInfo * | execute (const std::string &pMethod, const AL::ALValue &pParams, AL::ALValue &pResult)
| Execute a method with some arguments and store the result. More...
std::vector< std::string > | getMethodList ()
| Get the module method list. More...
AL::ALValue | getMethodHelp (const std::string &pMethodName)
| Get a method's description string. More...
ALMethodInfo | getMethodHelpObject (const std::string &pMethodName)
| Get a method's description string. More...
AL::ALValue | moduleHelp ()
| Get the module's description. More...
bool | ping (void)
| Just a ping. Used to test connectivity to a module. More...
virtual std::string | version ()
| Get module's version. More...
virtual void | exit ()
| Exit the module and unregister it. More...
const std::string & | getName () const
| Get the name of the module given when constructing. More...
boost::shared_ptr< ALModuleInfo > | getModuleInfo ()
| Get information about the module. More...
ALMethodInfo * | getMethodInfoByNameMember (const std::string &pName, const std::vector< std::string > &paramType, bool softCompare=true)
| Find method information by name and argument type not only by map key. More...
ALMethodInfo * | getMethodInfo (const std::string &pName)
| Call by a proxy to check function's parameter. More...
ALMethodInfo * | getMethodInfo (const std::string &pName, std::vector< std::string > pParamsType)
| Call by a proxy to check function's parameter. More...
ALMethodInfo * | getMethodInfo (const std::string &pName, const AL::ALValue &pParams)
| Call by a proxy to check function's parameter. More...
ALMethodInfo * | getFunctionDesc (const std::string &pName)
| deprecated More...
ALMethodInfo * | getFunctionDesc (const std::string &pName, std::vector< std::string > pParamsType)
| deprecated More...
ALMethodInfo * | getFunctionDesc (const std::string &pName, const AL::ALValue &pParams)
| deprecated More...
ALMethodInfo * | getFunctionDescByNameMember (const std::string &pName, const std::vector< std::string > &paramType, bool softCompare=true)
| deprecated More...
boost::shared_ptr< ALBroker > | getParentBroker () const
| Get a pointer to the broker context. More...
void | functionStop (int pTaskID)
| Local stop. Use stop(id) for remote/local compatibility. More...
void | setModuleDescription (const std::string &pDesc)
| Set the description of the module. More...
std::string | getUsage (const std::string &methodName)
| Get the usage of a method as a string. More...
bool | isModuleStopped ()
| Know if program or module termination is asked. More...
void | setModuleID (int id)
| Set the id of the module used to determine the shutdown order. More...
int | getModuleID ()
| Get the module id given to it be the broker. More...
void | bindMethod (boost::shared_ptr< ALFunctorBase > pFunctor)
| Bind a method. More...
void | bindMethod (boost::shared_ptr< ALFunctorBase > pFunctor, const std::string &pName, const std::string &pClass, const std::string &pFunctionDescription, const ALMethodInfo &pMethodDescription)
| Bind a method. More...
void | bindMethodOverload (boost::shared_ptr< ALFunctorBase > pFunctor)
| Use to define a bound method. More...
void | functionName (const std::string &pName, const std::string &pClass, const std::string &pFunctionDescription, int pMask=0)
| Define the name of a bound method. More...
void | addParam (const std::string &pName, const std::string &pDesc)
| Add a documented parameter to a method. More...
void | addModuleExample (const std::string &pLanguage, const std::string &pExample)
| Add a module example. More...
void | addMethodExample (const std::string &pLanguage, const std::string &pExample)
| Add a method example. More...
void | setReturn (const std::string &pName, const std::string &pDesc)
| Sets the description of the return value. More...
virtual qi::Future < qi::AnyReference > | metaCall (qi::AnyObject context, unsigned int method, const qi::GenericFunctionParameters &in, qi::MetaCallType callType, qi::Signature returnSignature)
qi::AnyObject | asObject ()
qi::DynamicObjectBuilder & | getBuilder ()
int | pCall (const qi::AnyArguments &args)

## Static Public Member Functions
template<class T >
static boost::shared_ptr< T > | createModuleCore (boost::shared_ptr< ALBroker > pBroker)
| Create a module core link to a broker. More...
template<class T >
static boost::shared_ptr< T > | createModuleCoreNoRegister (boost::shared_ptr< ALBroker > pBroker, const std::string &name)
| Create a module core, do not register on the broker. More...
template<class T >
static boost::shared_ptr< T > | createModuleCore (boost::shared_ptr< ALBroker > pBroker, const std::string &name)
| Create a module core link to a broker. More...
template<class T >
static boost::shared_ptr< T > | createUrbiModule (boost::shared_ptr< ALBroker > pBroker, const std::string &name)
| Create a URBI module core link to a broker. More...

## Public Attributes
qi::GenericObject | _go
ALModuleCorePrivate * | _p
qi::MetaMethodBuilder | _mBuilder

## Protected Member Functions
virtual void | init (void)
| Call at every module creation. More...

## Protected Attributes
qi::DynamicObjectBuilder | _builder

## Friends
class | baseModule

## Detailed Description

ALModuleCore is the superclass of user modules.

It implements basic functions that enables communication with naoqi brokers, so that the distributed approach is painless for users who just want to come up with a simple module quickly, compile it and have it work, without having to deal with interprocess communication.

Definition at line 57 of file almodulecore.h.

## Member Typedef Documentation

AL::ALModuleCore::Ptr

Shared pointer to ALModuleCore.

Deprecated:
  Use boost::shared_ptr<ALModuleCore> instead

Definition at line 65 of file almodulecore.h.

AL::ALModuleCore::WeakPtr

Weak pointer to ALModuleCore.

Deprecated:
  Use boost::weak_ptr<ALModuleCore> instead

Definition at line 71 of file almodulecore.h.

## Member Enumeration Documentation

enum AL::ALModuleCore::ModuleType

Module type (Ruby, lua, and matlab are not currently used)

Deprecated:
  not used anywhere

Enumerator
CPP | C++ type
PYTHON | python type
RUBY | ruby type (unused)
LUA | lua type (unused)
MATLAB | matlab type (unused)
URBI | urbi type

Definition at line 78 of file almodulecore.h.

## Constructor & Destructor Documentation

AL::ALModuleCore::ALModuleCore | ( | boost::shared_ptr< ALBroker > | pBroker,
|  | const std::string & | pName
| ) |  |

Constructor.

An ALModule has a name, and is registered in a broker, so that its methods can be called by other modules, via a proxy constructed with module's name

Parameters

  pBroker | a pointer to the broker
  pName | name of the module

virtual AL::ALModuleCore::~ALModuleCore | ( |  | ) |
| virtual

Destructor.

## Member Function Documentation

void AL::ALModuleCore::addMethodExample | ( | const std::string & | pLanguage,
|  | const std::string & | pExample
| ) |  |

Add a method example.

Parameters

  pLanguage | the language of the example (c++, python, .net, etc)
  pExample | the example

void AL::ALModuleCore::addModuleExample | ( | const std::string & | pLanguage,
|  | const std::string & | pExample
| ) |  |

Add a module example.

Parameters

  pLanguage | the language of the example (c++, python, .net, etc)
  pExample | the example

void AL::ALModuleCore::addParam | ( | const std::string & | pName,
|  | const std::string & | pDesc
| ) |  |

Add a documented parameter to a method.

Parameters

  pName | the name of the parameter
  pDesc | the description of the parmeter

qi::AnyObject AL::ALModuleCore::asObject | ( |  | ) |

void AL::ALModuleCore::bindMethod | ( | boost::shared_ptr< ALFunctorBase > | pFunctor | ) |

Bind a method.

Parameters

  pFunctor | pointer to a generic functor

void AL::ALModuleCore::bindMethod | ( | boost::shared_ptr< ALFunctorBase > | pFunctor,
|  | const std::string & | pName,
|  | const std::string & | pClass,
|  | const std::string & | pFunctionDescription,
|  | const ALMethodInfo & | pMethodDescription
| ) |  |

Bind a method.

Parameters

  pFunctor | pointer to a generic functor
  pName | the name of the method
  pClass | the name of your class
  pFunctionDescription | the description of the method
  pMethodDescription | the description method.

void AL::ALModuleCore::bindMethodOverload | ( | boost::shared_ptr< ALFunctorBase > | pFunctor | ) |

Use to define a bound method.

Parameters

  pFunctor | pointer to a generic functor

template<class T >

static boost::shared_ptr<T> AL::ALModuleCore::createModuleCore | ( | boost::shared_ptr< ALBroker > | pBroker | ) |
| inline static

Create a module core link to a broker.

Parameters

  pBroker | to pointer the a broker

Returns
  a pointer to the module

Exceptions

  ALError |

Definition at line 341 of file almodulecore.h.

template<class T >

static boost::shared_ptr<T> AL::ALModuleCore::createModuleCore | ( | boost::shared_ptr< ALBroker > | pBroker,
|  | const std::string & | name
| ) |  |
| inline static

Create a module core link to a broker.

Parameters

  pBroker | pointer to the a broker
  name | module's name

Returns
  a pointer to the module

Exceptions

  ALError |

Definition at line 393 of file almodulecore.h.

template<class T >

static boost::shared_ptr<T> AL::ALModuleCore::createModuleCoreNoRegister | ( | boost::shared_ptr< ALBroker > | pBroker,
|  | const std::string & | name
| ) |  |
| inline static

Create a module core, do not register on the broker.

Parameters

  | pBroker | to pointer the a broker
  [in] | name | Name of the module core.

Returns
  a pointer to the module

Exceptions

  ALError |

Definition at line 367 of file almodulecore.h.

template<class T >

static boost::shared_ptr<T> AL::ALModuleCore::createUrbiModule | ( | boost::shared_ptr< ALBroker > | pBroker,
|  | const std::string & | name
| ) |  |
| inline static

Create a URBI module core link to a broker.

Parameters

  pBroker | pointer to the a broker
  name | module's name

Returns
  a pointer to the module

Definition at line 418 of file almodulecore.h.

virtual ALMethodInfo* AL::ALModuleCore::execute | ( | const std::string & | pMethod,
|  | const AL::ALValue & | pParams,
|  | AL::ALValue & | pResult
| ) |  |
| virtual

Execute a method with some arguments and store the result.

Parameters

  pMethod | method to execute
  pParams | set of arguments for the method
  pResult | result of the method execution

Returns
  a pointer to the method executed, so it can be used to get information about the method

virtual void AL::ALModuleCore::exit | ( |  | ) |
| virtual

Exit the module and unregister it.

Reimplemented in AL::ALModule.

void AL::ALModuleCore::functionName | ( | const std::string & | pName,
|  | const std::string & | pClass,
|  | const std::string & | pFunctionDescription,
|  | int | pMask = `0`
| ) |  |

Define the name of a bound method.

Parameters

  pName | the name of the method
  pClass | the name of your class
  pFunctionDescription | the description of the method
  pMask | optional Mask, default 0. see almethodinfo.h for more information

void AL::ALModuleCore::functionStop | ( | int | pTaskID | ) |

Local stop. Use stop(id) for remote/local compatibility.

Parameters

  pTaskID | the ID of the task you want to stop

std::string AL::ALModuleCore::getBrokerName | ( |  | ) |

Get the name of the registered broker.

Returns
  name of the broker

qi::DynamicObjectBuilder& AL::ALModuleCore::getBuilder | ( |  | ) |
| inline

Used only for naoqi1/naoqi2 compatibility layers. Do not use unless you know what you are doing

Definition at line 524 of file almodulecore.h.

ALMethodInfo& AL::ALModuleCore::getCurrentMethodDescription | ( |  | ) |

Get a reference to a temporary object used to construct method help.

Returns
  a reference to a temporary ALMethodInfo

ALMethodInfo* AL::ALModuleCore::getFunctionDesc | ( | const std::string & | pName | ) |

deprecated

Deprecated:

ALMethodInfo* AL::ALModuleCore::getFunctionDesc | ( | const std::string & | pName,
|  | std::vector< std::string > | pParamsType
| ) |  |

deprecated

Deprecated:

ALMethodInfo* AL::ALModuleCore::getFunctionDesc | ( | const std::string & | pName,
|  | const AL::ALValue & | pParams
| ) |  |

deprecated

Deprecated:

ALMethodInfo* AL::ALModuleCore::getFunctionDescByNameMember | ( | const std::string & | pName,
|  | const std::vector< std::string > & | paramType,
|  | bool | softCompare = `true`
| ) |  |

deprecated

Deprecated:

AL::ALValue AL::ALModuleCore::getMethodHelp | ( | const std::string & | pMethodName | ) |

Get a method's description string.

Parameters

  pMethodName | method's name.

Returns
  a structured method's description following the format : [ std::string methodName, std::string methodDescription, [parameter, ...], std::string returnName, std::string returnDescription ] Where parameter is : [ std::string parameterName, std::string parameterDescription ]

Warning
  Will return only one version of a method, therefore the method doesn't handle overloading.

ALMethodInfo AL::ALModuleCore::getMethodHelpObject | ( | const std::string & | pMethodName | ) |

Get a method's description string.

Parameters

  pMethodName | method's name.

Returns
  a structured method's description

ALMethodInfo* AL::ALModuleCore::getMethodInfo | ( | const std::string & | pName | ) |

Call by a proxy to check function's parameter.

Parameters

  pName | function Name

Returns
  a poitner to methodInfo

ALMethodInfo* AL::ALModuleCore::getMethodInfo | ( | const std::string & | pName,
|  | std::vector< std::string > | pParamsType
| ) |  |

Call by a proxy to check function's parameter.

Parameters

  pName | function Name
  pParamsType | parameters type

Returns
  a poitner to methodInfo

ALMethodInfo* AL::ALModuleCore::getMethodInfo | ( | const std::string & | pName,
|  | const AL::ALValue & | pParams
| ) |  |

Call by a proxy to check function's parameter.

Parameters

  pName | function Name
  pParams | method parameters

Returns
  a poitner to methodInfo

ALMethodInfo* AL::ALModuleCore::getMethodInfoByNameMember | ( | const std::string & | pName,
|  | const std::vector< std::string > & | paramType,
|  | bool | softCompare = `true`
| ) |  |

Find method information by name and argument type not only by map key.

Parameters

  pName | method name
  paramType | list of parameters
  softCompare | true mean ALValue can be anyType (use it for all type compare except local call)

Returns
  a poitner to methodInfo

std::vector<std::string> AL::ALModuleCore::getMethodList | ( |  | ) |

Get the module method list.

Returns
  vector of string module name

int AL::ALModuleCore::getModuleID | ( |  | ) |

Get the module id given to it be the broker.

Returns
  an int module id

boost::shared_ptr<ALModuleInfo> AL::ALModuleCore::getModuleInfo | ( |  | ) |

Get information about the module.

Returns
  a pointer to ALModuleInfo

ModuleType AL::ALModuleCore::getModuleType | ( | void |  | ) |

Get the type of the module.

Returns
  type of the module

const std::string& AL::ALModuleCore::getName | ( |  | ) | const

Get the name of the module given when constructing.

Returns
  The name of the module

boost::shared_ptr<ALBroker> AL::ALModuleCore::getParentBroker | ( |  | ) | const

Get a pointer to the broker context.

Returns
  a shared pointer to the broker context

boost::shared_ptr<AL::ALProxy> AL::ALModuleCore::getProxy | ( | const std::string & | pModuleName | ) |

Get access to a module.

ex: getProxy("ALMotion")

Parameters

  pModuleName | module name

Returns
  a pointer to ALProxy

boost::shared_ptr<ALModuleCore> AL::ALModuleCore::getThis | ( |  | ) |

Getter to the class.

Returns
  a pointer to this

boost::shared_ptr<const ALModuleCore> AL::ALModuleCore::getThis | ( |  | ) | const

Getter to class.

Returns
  a const pointer to this

std::string AL::ALModuleCore::getUsage | ( | const std::string & | methodName | ) |

Get the usage of a method as a string.

Parameters

  methodName | the name of the method

Returns
  the usage as a string

virtual void AL::ALModuleCore::init | ( | void |  | ) |
| inline protected virtual

Call at every module creation.

User can overload it

Reimplemented in AL::ALModule.

Definition at line 538 of file almodulecore.h.

void AL::ALModuleCore::initModule | ( | void |  | ) |

Register a module to a broker.

Automatically called when loading a module from autoload.ini

bool AL::ALModuleCore::isClosing | ( |  | ) |

Check if someone want to exit the module.

Returns
  true if someone ask to exit the module, false othewise

bool AL::ALModuleCore::isModuleStopped | ( |  | ) |

Know if program or module termination is asked.

Returns
  true if module termination is asked, false otherwise

virtual qi::Future<qi::AnyReference> AL::ALModuleCore::metaCall | ( | qi::AnyObject | context,
|  | unsigned int | method,
|  | const qi::GenericFunctionParameters & | in,
|  | qi::MetaCallType | callType,
|  | qi::Signature | returnSignature
| ) |  |
| virtual

AL::ALValue AL::ALModuleCore::moduleHelp | ( |  | ) |

Get the module's description.

Returns
  a string describing the module

int AL::ALModuleCore::pCall | ( | const qi::AnyArguments & | args | ) |

Used for simulating old naoqi1 post behavior that return an id

bool AL::ALModuleCore::ping | ( | void |  | ) |

Just a ping. Used to test connectivity to a module.

Returns
  always returns true

void AL::ALModuleCore::setModuleDescription | ( | const std::string & | pDesc | ) |

Set the description of the module.

Parameters

  pDesc | a description of the module

void AL::ALModuleCore::setModuleID | ( | int | id | ) |

Set the id of the module used to determine the shutdown order.

Parameters

  id | the id given to it by the broker

void AL::ALModuleCore::setModuleType | ( | ModuleType | pType | ) |

Set the type of the module.

Parameters

  pType | type of the module

void AL::ALModuleCore::setReturn | ( | const std::string & | pName,
|  | const std::string & | pDesc
| ) |  |

Sets the description of the return value.

Parameters

  pName | the name of the return item (used in autogeneration)
  pDesc | the description of the return item

virtual std::string AL::ALModuleCore::version | ( |  | ) |
| virtual

Get module's version.

Returns
  The version as a string

## Friends And Related Function Documentation

friend class baseModule
| friend

Definition at line 545 of file almodulecore.h.

## Member Data Documentation

qi::DynamicObjectBuilder AL::ALModuleCore::_builder
| protected

Definition at line 544 of file almodulecore.h.

qi::GenericObject AL::ALModuleCore::_go

Definition at line 547 of file almodulecore.h.

qi::MetaMethodBuilder AL::ALModuleCore::_mBuilder

Definition at line 549 of file almodulecore.h.

ALModuleCorePrivate* AL::ALModuleCore::_p

Definition at line 548 of file almodulecore.h.

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

- /home/opennao/work/release-2.8/sdk/libnaoqi/libalcommon/alcommon/almodulecore.h