- 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 | List of all members
AL::ALProxy Class Reference
Proxy

ALProxy is a client to the served methods of a module. More...

`#include "alcommon/alproxy.h"`

## Public Types
enum | pProxyOption { NO_OPTION = 0, FORCED_LOCAL = 1, NO_LOAD_DEPENDS = 2, MAIN_PROXY = 4 }
| Different options for the ALProxy. More...
typedef boost::shared_ptr < ALProxy > | Ptr
| Shared pointer to ALProxy. More...
typedef boost::weak_ptr< ALProxy > | WeakPtr
| Weak pointer to ALProxy. More...
typedef int(* | onFinishedCallback )(const char *, int, const AL::ALValue &)

## Public Member Functions
boost::shared_ptr< ALProxy > | getThis ()
| Get a pointer to this ALProxy. More...
boost::shared_ptr< const ALProxy > | getThis () const
| Get a pointer to this ALProxy. More...
| ALProxy (boost::shared_ptr< ALBroker > pBroker, const std::string &pModuleName, int pProxyMask=0, int timeout=0)
| Constructor. More...
| ALProxy (const qi::SessionPtr &session, const std::string &serviceName)
| Construction out of a session. More...
| ALProxy (qi::AnyObject pObject, const std::string &pModuleName)
| Constructor. More...
| ALProxy (const std::string &pModuleName, const std::string &pIp, int pPort, int pProxyMask=0, int timeout=0)
| Constructor allowing to use proxy without instancing a broker. More...
| ALProxy (const std::string &pModuleName, const std::string &pIp, int pPort, boost::shared_ptr< ALBroker > pBroker, int pProxyMask=0, int timeout=0)
| Constructor. More...
virtual | ~ALProxy (void)
| Destructor. More...
| ALProxy (const ALProxy &rhs)=delete
ALProxy & | operator= (const ALProxy &rhs)=delete
| ALProxy (ALProxy &&other)
ALProxy & | operator= (ALProxy &&other)
std::string | remoteBrokerName ()
| return the name of the remote broker More...
AL::ALValue | genericCall (const std::string &strMethodName, const AL::ALValue &listParams)
| A generic call, without type optimisation, using AL::ALValue for each call... (local or not). More...
int | genericPCall (const std::string &strMethodName, const AL::ALValue &listParams, onFinishedCallback pCallbackToCallOnFinished=NULL, const char *pszCallerName=NULL)
| A generic post-call, without type optimisation, using AL::ALValue for each call... (local or not). More...
std::string | version ()
| Get the version. More...
boost::shared_ptr< ALModule > | getModule () const
| Get the module. More...
boost::shared_ptr< ALModuleCore > | getModuleCore () const
| Get the moduleCore. More...
int | getInfo (ALModuleInfo &pModuleInfo)
| Get information about the module stored into pModuleInfo. More...
bool | isLocal ()
| Check if the module is in the same process than the proxy. More...
bool | isValid ()
| Make sure that we notice that someone has invalidated our module. More...
boost::shared_ptr< ALFunctorBase > | getFunctor (const std::string &pName, const std::vector< std::string > &pParamTypes)
| Get a pointer to a method form its name and its parameters. More...
boost::shared_ptr< ALBroker > | getParentBroker (void) const
| Get the parent broker. More...
void | destroyConnection (void)
| Destroy a proxy to clean each shared_ptr of the class. More...
template<typename R >
R | call (const std::string &pName)
template<typename R , typename P1 >
R | call (const std::string &pName, const P1 &p1)
template<typename R , typename P1 , typename P2 >
R | call (const std::string &pName, const P1 &p1, const P2 &p2)
template<typename R , typename P1 , typename P2 , typename P3 >
R | call (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3)
template<typename R , typename P1 , typename P2 , typename P3 , typename P4 >
R | call (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4)
template<typename R , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >
R | call (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5)
template<typename R , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >
R | call (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5, const P6 &p6)
void | callVoid (const std::string &pName)
template<typename P1 >
void | callVoid (const std::string &pName, const P1 &p1)
template<typename P1 , typename P2 >
void | callVoid (const std::string &pName, const P1 &p1, const P2 &p2)
template<typename P1 , typename P2 , typename P3 >
void | callVoid (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3)
template<typename P1 , typename P2 , typename P3 , typename P4 >
void | callVoid (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4)
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >
void | callVoid (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5)
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >
void | callVoid (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5, const P6 &p6)
int | pCall (const std::string &pName)
template<typename P1 >
int | pCall (const std::string &pName, const P1 &p1)
template<typename P1 , typename P2 >
int | pCall (const std::string &pName, const P1 &p1, const P2 &p2)
template<typename P1 , typename P2 , typename P3 >
int | pCall (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3)
template<typename P1 , typename P2 , typename P3 , typename P4 >
int | pCall (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4)
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >
int | pCall (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5)
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >
int | pCall (const std::string &pName, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5, const P6 &p6)
bool | wait (const int &id, const int &timeoutPeriod)
| Wait for the end of a long running method that was called using 'post'. More...
qi::FutureSync< void > | wait (const int &id)
| Waits until the end of a long running method using the ID that was returned from a method started with 'post'. More...
void | stop (const int &id)
| Stop a long running method that was called using 'post'. More...
bool | isRunning (const int &id)
| Check if the method is running. More...
template<typename P0 >
int | pCall (const std::string &pName, const P0 &p0)
template<typename P0 , typename P1 >
int | pCall (const std::string &pName, const P0 &p0, const P1 &p1)
template<typename P0 , typename P1 , typename P2 >
int | pCall (const std::string &pName, const P0 &p0, const P1 &p1, const P2 &p2)
template<typename P0 , typename P1 , typename P2 , typename P3 >
int | pCall (const std::string &pName, const P0 &p0, const P1 &p1, const P2 &p2, const P3 &p3)
template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 >
int | pCall (const std::string &pName, const P0 &p0, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4)
template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >
int | pCall (const std::string &pName, const P0 &p0, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5)

## Detailed Description

ALProxy is a client to the served methods of a module.

It gives access to the methods of a module without needing to know if the module that provides a service is in the same process, on the same machine, or on the same tcp network.

ALProxy is a generic client in that it can be constructed using just the name of the module that you wish to connect to. Once connected, methods are availble via templated calls. While generic and flexible, these provide no checking on the availabilty or signature of a method until runtime.

All Aldebaran provided modules have classes called 'specific' proxies built around this generic proxy. When using a specific proxy, explicit method signatures are provided which allows correctness to be validated at runtime. In addition, specific proxies include optimisations for local calls that are easily available in the generic proxy. e.g. #include <alproxies/altexttospeechproxy> ... AL::ALTextToSpeechProxy tts; tts.say("hello world");

Lifetime: The broker own a private qi::object, proxies own a weak pointer on the object. If the object is destroyed (because the module do not exist anymore, the weak_ptr wont work anymore). once there is no weak_ptr on the object the object could be deleted from broker.

Definition at line 71 of file alproxy.h.

## Member Typedef Documentation

typedef int(* AL::ALProxy::onFinishedCallback)(const char *, int, const AL::ALValue &)

Definition at line 87 of file alproxy.h.

AL::ALProxy::Ptr

Shared pointer to ALProxy.

Deprecated:
  Use boost::shared_ptr<ALProxy> instead.

Definition at line 79 of file alproxy.h.

AL::ALProxy::WeakPtr

Weak pointer to ALProxy.

Deprecated:
  Use boost::weak_ptr<ALProxy> instead.

Definition at line 85 of file alproxy.h.

## Member Enumeration Documentation

enum AL::ALProxy::pProxyOption

Different options for the ALProxy.

Enumerator
NO_OPTION | no options
FORCED_LOCAL | only local proxy
NO_LOAD_DEPENDS | don't load dependency
MAIN_PROXY | only main broker proxy

Definition at line 104 of file alproxy.h.

## Constructor & Destructor Documentation

AL::ALProxy::ALProxy | ( | boost::shared_ptr< ALBroker > | pBroker,
|  | const std::string & | pModuleName,
|  | int | pProxyMask = `0`,
|  | int | timeout = `0`
| ) |  |

Constructor.

Parameters

  pBroker | pointer to a broker
  pModuleName | module's name
  pProxyMask |
  timeout |

AL::ALProxy::ALProxy | ( | const qi::SessionPtr & | session,
|  | const std::string & | serviceName
| ) |  |

Construction out of a session.

Parameters

  session | A connected session. Throws otherwise.
  serviceName | The name of the service to look for.

AL::ALProxy::ALProxy | ( | qi::AnyObject | pObject,
|  | const std::string & | pModuleName
| ) |  |

Constructor.

Parameters

  pObject | pointer to a service object be careful this pointer wont be owned by ALProxy
  pModuleName | module's name

AL::ALProxy::ALProxy | ( | const std::string & | pModuleName,
|  | const std::string & | pIp,
|  | int | pPort,
|  | int | pProxyMask = `0`,
|  | int | timeout = `0`
| ) |  |

Constructor allowing to use proxy without instancing a broker.

Parameters

  pModuleName | module's name
  pIp |
  pPort |
  pProxyMask |
  timeout |

AL::ALProxy::ALProxy | ( | const std::string & | pModuleName,
|  | const std::string & | pIp,
|  | int | pPort,
|  | boost::shared_ptr< ALBroker > | pBroker,
|  | int | pProxyMask = `0`,
|  | int | timeout = `0`
| ) |  |

Constructor.

Parameters

  pModuleName | module's name
  pIp |
  pPort |
  pBroker |
  pProxyMask |
  timeout |

virtual AL::ALProxy::~ALProxy | ( | void |  | ) |
| virtual

Destructor.

AL::ALProxy::ALProxy | ( | const ALProxy & | rhs | ) |
| delete

AL::ALProxy::ALProxy | ( | ALProxy && | other | ) |

## Member Function Documentation

template<typename R >

R AL::ALProxy::call | ( | const std::string & | pName | ) |

template<typename R , typename P1 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1
| ) |  |

template<typename R , typename P1 , typename P2 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2
| ) |  |

template<typename R , typename P1 , typename P2 , typename P3 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3
| ) |  |

template<typename R , typename P1 , typename P2 , typename P3 , typename P4 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4
| ) |  |

template<typename R , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5
| ) |  |

template<typename R , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >

R AL::ALProxy::call | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5,
|  | const P6 & | p6
| ) |  |

void AL::ALProxy::callVoid | ( | const std::string & | pName | ) |
| inline

template<typename P1 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1
| ) |  |

template<typename P1 , typename P2 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2
| ) |  |

template<typename P1 , typename P2 , typename P3 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >

void AL::ALProxy::callVoid | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5,
|  | const P6 & | p6
| ) |  |

void AL::ALProxy::destroyConnection | ( | void |  | ) |

Destroy a proxy to clean each shared_ptr of the class.

AL::ALValue AL::ALProxy::genericCall | ( | const std::string & | strMethodName,
|  | const AL::ALValue & | listParams
| ) |  |

A generic call, without type optimisation, using AL::ALValue for each call... (local or not).

Used from a C++ code not knowing the signature of the called method

Parameters

  strMethodName | the name of the method to call
  listParams | the list of parameters (possibly no params)

Returns
  an alvalue, possibly invalid if function returns nothing

int AL::ALProxy::genericPCall | ( | const std::string & | strMethodName,
|  | const AL::ALValue & | listParams,
|  | onFinishedCallback | pCallbackToCallOnFinished = `NULL`,
|  | const char * | pszCallerName = `NULL`
| ) |  |

A generic post-call, without type optimisation, using AL::ALValue for each call... (local or not).

Used from a C++ code not knowing the signature of the called method

Warning
  the callback will still be called if the proxy is destroyed.

Parameters

  strMethodName | the name of the method to call
  listParams | the list of parameters (possibly no params)
  pCallbackToCallOnFinished | a callback to call when task is finished (NULL if no callback) DEPRECATED
  pszCallerName | the name of the caller (proxy name or module name, dependings on langage, script, caller...) DEPRECATED

Returns
  nID: ID of the new created task (0 if error)

boost::shared_ptr<ALFunctorBase> AL::ALProxy::getFunctor | ( | const std::string & | pName,
|  | const std::vector< std::string > & | pParamTypes
| ) |  |

Get a pointer to a method form its name and its parameters.

Parameters

  pName | name of the method
  pParamTypes | parameters' list

Returns
  a pointer to the method

int AL::ALProxy::getInfo | ( | ALModuleInfo & | pModuleInfo | ) |

Get information about the module stored into pModuleInfo.

Parameters

  pModuleInfo | reference to the module information found

Returns
  0 if module info find, -1 otherwise

boost::shared_ptr<ALModule> AL::ALProxy::getModule | ( |  | ) | const

Get the module.

Returns
  a pointer to the module

boost::shared_ptr<ALModuleCore> AL::ALProxy::getModuleCore | ( |  | ) | const

Get the moduleCore.

Returns
  a pointer to the moduleCore

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

Get the parent broker.

Returns
  a pointer to the parent broker

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

Get a pointer to this ALProxy.

Returns
  A pointer to this

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

Get a pointer to this ALProxy.

Returns
  A const pointer to this

bool AL::ALProxy::isLocal | ( |  | ) |

Check if the module is in the same process than the proxy.

Returns
  true if the module is in the same process, false otherwise

bool AL::ALProxy::isRunning | ( | const int & | id | ) |

Check if the method is running.

Parameters

  id | the ID of the method that was returned when calling the method using 'post'

Returns
  true if the method is currently running.

bool AL::ALProxy::isValid | ( |  | ) |

Make sure that we notice that someone has invalidated our module.

This check is done before each specialized proxy's use of a method ptr.

Returns
  true if the module is valide, false otherwise

ALProxy& AL::ALProxy::operator= | ( | const ALProxy & | rhs | ) |
| delete

ALProxy& AL::ALProxy::operator= | ( | ALProxy && | other | ) |

template<typename P0 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0
| ) |  |

Definition at line 74 of file alproxy.hxx.

template<typename P0 , typename P1 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0,
|  | const P1 & | p1
| ) |  |

Definition at line 85 of file alproxy.hxx.

template<typename P0 , typename P1 , typename P2 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0,
|  | const P1 & | p1,
|  | const P2 & | p2
| ) |  |

Definition at line 97 of file alproxy.hxx.

template<typename P0 , typename P1 , typename P2 , typename P3 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3
| ) |  |

Definition at line 110 of file alproxy.hxx.

template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4
| ) |  |

Definition at line 124 of file alproxy.hxx.

template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P0 & | p0,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5
| ) |  |

Definition at line 139 of file alproxy.hxx.

int AL::ALProxy::pCall | ( | const std::string & | pName | ) |
| inline

Definition at line 64 of file alproxy.hxx.

template<typename P1 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1
| ) |  |

template<typename P1 , typename P2 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2
| ) |  |

template<typename P1 , typename P2 , typename P3 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5
| ) |  |

template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 >

int AL::ALProxy::pCall | ( | const std::string & | pName,
|  | const P1 & | p1,
|  | const P2 & | p2,
|  | const P3 & | p3,
|  | const P4 & | p4,
|  | const P5 & | p5,
|  | const P6 & | p6
| ) |  |

std::string AL::ALProxy::remoteBrokerName | ( |  | ) |

return the name of the remote broker

Returns
  name of the remote broker, "" is it's a local broker

void AL::ALProxy::stop | ( | const int & | id | ) |

Stop a long running method that was called using 'post'.

Parameters

  id | the ID of the method that was returned when calling the method using 'post'

std::string AL::ALProxy::version | ( |  | ) |

Get the version.

Returns
  the revision number as a string

bool AL::ALProxy::wait | ( | const int & | id,
|  | const int & | timeoutPeriod
| ) |  |

Wait for the end of a long running method that was called using 'post'.

Parameters

  id | the ID of the method that was returned when calling the method using 'post'
  timeoutPeriod | the timeout period in ms. To wait indefinately, use a timeoutPeriod of zero

Returns
  true if the timeout period terminated. false if the method returned.

qi::FutureSync<void> AL::ALProxy::wait | ( | const int & | id | ) |

Waits until the end of a long running method using the ID that was returned from a method started with 'post'.

Parameters

  taskId | the ID of the method that was returned by 'post'

Returns
  a cancelable future that will call stop(id) upon cancel

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

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