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

ALBroker serves methods advertised by connected modules to clients participating in the network. All executables create at least one broker in main.cpp. A broker will wait for http request, remote C++ request from PC application... More...

`#include "alcommon/albroker.h"`

## Public Types
typedef boost::shared_ptr < ALBroker > | Ptr
| Shared pointer to ALBroker. More...
typedef boost::weak_ptr< ALBroker > | WeakPtr
| Weak pointer to ALBroker. More...

## Public Member Functions
boost::shared_ptr< ALBroker > | getThis ()
| Getter to this. More...
boost::shared_ptr< const ALBroker > | getThis () const
| Getter to this. More...
| ALBroker ()
| Default Constructor. More...
virtual | ~ALBroker (void)
| Destructor. More...
void | setBrokerManagerInstance (boost::shared_ptr< ALBrokerManager > pBrokerManager)
| Sets the brokerManager instance. More...
boost::shared_ptr< ALModuleCore > | getModuleByName (const std::string &pModuleName)
| Another way to get module by name. More...
int | unregisterModule (const std::string &pModuleName)
| Called when a module, belonging to this broker, quits. More...
bool | isModulePresent (const std::string &pModuleName)
| Call to know if a module is present. More...
int | getModuleList (boost::shared_ptr< std::vector< ALModuleInfo > > pModuleList)
| Return the registered module list. More...
int | getBrokerList (std::vector< ALModuleInfo > &pBrokerList)
| Return the list of registered Brokers. More...
int | getGlobalModuleList (boost::shared_ptr< std::vector< ALModuleInfo > > pModuleList)
| Return the registered module list in every broker (global). More...
bool | isExiting () const
| Check if the application is existing. More...
bool | isConnected ()
| Return whether the broker is connected or not. More...
int | shutdown ()
| shutdown, close all modules and send exit command to child broker. More...
std::string | getName () const
| Get the name of the broker. More...
std::string | getIP () const
| Get the IP address of the broker. More...
int | getPort () const
| fBorkerPort getter. More...
std::string | getParentIP () const
| Return the parent IP if any. More...
int | getParentPort () const
| Return the parent Port if any. More...
boost::shared_ptr< ALProxy > | getProxy (const std::string &pProxyName, int deprecated=0)
| Get an existing proxy if it exists, create a proxy with option otherwise. More...
template<typename T >
boost::shared_ptr< T > | getSpecialisedProxy (const std::string &name=std::string())
qi::SessionPtr | session ()

## Static Public Member Functions
static boost::shared_ptr < ALBroker > | createBroker (const std::string &pName, const std::string &pIP, int pPort, const std::string &pParentIP, int pParentPort, int pKeepAlive=0, std::string pPath="", bool pLoadLib=true)
| CreateBroker helps to broker creation. More...
static boost::shared_ptr < ALBroker > | createBroker (const std::string &name, qi::SessionPtr session)

## Public Attributes
boost::weak_ptr< ALBrokerManager > | fBrokerManager
ALBrokerPrivate * | _p

## Detailed Description

ALBroker serves methods advertised by connected modules to clients participating in the network. All executables create at least one broker in main.cpp. A broker will wait for http request, remote C++ request from PC application...

Brokers can be connected to each other to form a tree where each broker has parent broker until the base of the tree. Typically there is one broker for each process and any number of attached modules, each with any number of advertised methods.

Brokers transparently handle directory services so that clients need not know if the module that provides a service is in the same process, on the same machine, or on the same tcp network.

Within the same process, direct method calls are used to provide optimal speed without having to change your method signatures.

Remote communication is currently handled by SOAP

In most practical usage, you will never need to explicitly create a broker. The main NAOqi process has one, and module that is compiled as 'remote' and that uses ALToolsMain, will create a broker for you if required.

Definition at line 73 of file albroker.h.

## Member Typedef Documentation

AL::ALBroker::Ptr

Shared pointer to ALBroker.

Deprecated:
  Use boost::shared_ptr<ALBroker> instead

Definition at line 81 of file albroker.h.

AL::ALBroker::WeakPtr

Weak pointer to ALBroker.

Deprecated:
  Use boost::weak_ptr<ALBroker> instead

Definition at line 87 of file albroker.h.

## Constructor & Destructor Documentation

AL::ALBroker::ALBroker | ( |  | ) |

Default Constructor.

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

Destructor.

## Member Function Documentation

static boost::shared_ptr<ALBroker> AL::ALBroker::createBroker | ( | const std::string & | pName,
|  | const std::string & | pIP,
|  | int | pPort,
|  | const std::string & | pParentIP,
|  | int | pParentPort,
|  | int | pKeepAlive = `0`,
|  | std::string | pPath = `""`,
|  | bool | pLoadLib = `true`
| ) |  |
| static

CreateBroker helps to broker creation.

Parameters

  pName | broker name
  pIP | broker IP
  pPort | broker port
  pParentIP | parent broker IP
  pParentPort | parent broker port
  pKeepAlive | true => broker will not be destroyed if parent broker is destroyed
  pPath | deprecated, do not use, will have no effect
  pLoadLib | boolean to know if the module is loaded

Returns
  pointer on broker

static boost::shared_ptr<ALBroker> AL::ALBroker::createBroker | ( | const std::string & | name,
|  | qi::SessionPtr | session
| ) |  |
| static

int AL::ALBroker::getBrokerList | ( | std::vector< ALModuleInfo > & | pBrokerList | ) |

Return the list of registered Brokers.

Parameters

  pBrokerList | [out] list of Broker information

Returns
  0 on success

int AL::ALBroker::getGlobalModuleList | ( | boost::shared_ptr< std::vector< ALModuleInfo > > | pModuleList | ) |

Return the registered module list in every broker (global).

Parameters

  pModuleList | list of module information

Returns
  0 on success

std::string AL::ALBroker::getIP | ( |  | ) | const

Get the IP address of the broker.

Returns
  A string containing the broker IP.

boost::shared_ptr<ALModuleCore> AL::ALBroker::getModuleByName | ( | const std::string & | pModuleName | ) |

Another way to get module by name.

Parameters

  pModuleName | name of the module

Returns
  A pointer to the module.

int AL::ALBroker::getModuleList | ( | boost::shared_ptr< std::vector< ALModuleInfo > > | pModuleList | ) |

Return the registered module list.

Parameters

  pModuleList | list of module information

Returns
  0 on success

std::string AL::ALBroker::getName | ( |  | ) | const

Get the name of the broker.

Returns
  A string containing the module name.

std::string AL::ALBroker::getParentIP | ( |  | ) | const

Return the parent IP if any.

int AL::ALBroker::getParentPort | ( |  | ) | const

Return the parent Port if any.

int AL::ALBroker::getPort | ( |  | ) | const

fBorkerPort getter.

Returns
  A integer contain broker port.

boost::shared_ptr<ALProxy> AL::ALBroker::getProxy | ( | const std::string & | pProxyName,
|  | int | deprecated = `0`
| ) |  |

Get an existing proxy if it exists, create a proxy with option otherwise.

Parameters

  | pProxyName | proxy's name
  [in] | deprecated | deprecated option for the new proxy.

Returns
  ALProxy.

template<typename T >

boost::shared_ptr<T> AL::ALBroker::getSpecialisedProxy | ( | const std::string & | name = `std::string()` | ) |
| inline

Definition at line 218 of file albroker.h.

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

Getter to this.

Returns
  A pointer to this

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

Getter to this.

Returns
  A const pointer to this

bool AL::ALBroker::isConnected | ( |  | ) |

Return whether the broker is connected or not.

Returns
  true if connected

bool AL::ALBroker::isExiting | ( |  | ) | const

Check if the application is existing.

Returns
  true if application is exiting, false otherwise.

bool AL::ALBroker::isModulePresent | ( | const std::string & | pModuleName | ) |

Call to know if a module is present.

Parameters

  pModuleName | name of the module to search

Returns
  true if the module is local or if the module is present in a broker connected.

qi::SessionPtr AL::ALBroker::session | ( |  | ) |

void AL::ALBroker::setBrokerManagerInstance | ( | boost::shared_ptr< ALBrokerManager > | pBrokerManager | ) |

Sets the brokerManager instance.

Parameters

  pBrokerManager | A pointer to the broker manager.

int AL::ALBroker::shutdown | ( |  | ) |

shutdown, close all modules and send exit command to child broker.

Returns
  0 on succes

int AL::ALBroker::unregisterModule | ( | const std::string & | pModuleName | ) |

Called when a module, belonging to this broker, quits.

References to the module (proxies, subscriptions to ALMemory, ...) will be deleted

Parameters

  pModuleName | name of the module exiting

Returns
  0 on success

## Member Data Documentation

ALBrokerPrivate* AL::ALBroker::_p

Private implementation of ALBroker.

Definition at line 309 of file albroker.h.

boost::weak_ptr<ALBrokerManager> AL::ALBroker::fBrokerManager

for compat only, useless

Definition at line 306 of file albroker.h.

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

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