hpp-corbaserver: Extending the bindings

hpp-corbaserver 9.0.2 Corba server for Humanoid Path Planner applications

Classes | Macros | Typedefs | Functions
Extending the bindings

## Classes
struct | hpp::corbaServer::hpp_traits< T >
class | hpp::corbaServer::AbstractServantKey
| Abstract class used to avoid duplication of the servants. More...
class | hpp::corbaServer::AbstractServantBase< T >
class | hpp::corbaServer::ServantBase< T, _Storage >
class | hpp::corbaServer::AbstractStorage< T, Base >
class | hpp::corbaServer::ServantFactoryBase< ServantBaseType >
struct | hpp::corbaServer::ServantFactory< ServantBaseType, ServantType >
struct | hpp::corbaServer::vectorToSeqServant< OutType, InnerBaseType, InnerType >

## Macros
#define | SERVANT_BASE_TYPEDEFS(idlObj, hppObj)

## Typedefs
typedef PortableServer::Servant_var< PortableServer::ServantBase > | hpp::corbaServer::ServantBase_var

## Functions
template<typename S , typename P >
PortableServer::Servant_var< S > | hpp::corbaServer::reference_to_servant (Server *server, const P &p)
template<typename T , typename P >
AbstractServantBase< T > * | hpp::corbaServer::reference_to_servant_base (Server *server, const P &p)
template<typename P , typename S >
P | hpp::corbaServer::makeServant (Server *server, S *s)
template<typename T , typename P >
auto | hpp::corbaServer::reference_to_object (Server *server, const P &p)
template<typename ServantBaseType >
std::vector< ServantFactoryBase< ServantBaseType > * > & | hpp::corbaServer::objectDowncasts ()
template<typename ServantBaseType >
void | hpp::corbaServer::addDowncastObjects (ServantFactoryBase< ServantBaseType > *const object)
template<typename ServantBaseType , typename ReturnType >
ReturnType::Object_var | hpp::corbaServer::makeServantDownCast (Server *server, const typename ServantBaseType::Storage &t)
template<typename ServantBaseType >
ServantBaseType::Object_var | hpp::corbaServer::makeServantDownCast (Server *server, const typename ServantBaseType::Storage &t)

## Detailed Description

Classes and functions related to the addition of HPP class bindings.

Example usage can be found in classes hpp::corbaServer::core_idl::Path, hpp::corbaServer::core_idl::PathVector, hpp::corbaServer::core_idl::Distance

Steps for the topmost class of an hierarchy, called ClassA:
  - optionally write a storage class (or use shared_ptr<ClassA>)
  - create a `template <typename _Base, typename _Storage> ClassAServant` that inherits
    - `_Base`, this will be an IDL class that inherits from IDLClassA.
    - `ServantBase<shared_ptr<ClassA>`, _Storage >
  - Add `SERVANT_BASE_TYPEDEFS(ClassAServant, shared_ptr<ClassA>);`
  - implement the functions of IDLClassA
  - add after your class `typedef ClassAServant<IDLClassA, Storage> ClassA`.

Steps for a derived class of an hierarchy, called ClassB:
  - optionally write a storage class (or use shared_ptr<ClassB>)
  - create a `template <typename _Base, typename _Storage> ClassBServant` that inherits
    - `ClassAServant<_Base, Storage>`
  - implement the functions of IDLClassB
  - add after your class `typedef ClassBServant<IDLClassB, Storage> ClassB`.

about the storage class
  See details section of AbstractStorage.

## Macro Definition Documentation

## ◆ SERVANT_BASE_TYPEDEFS

#define SERVANT_BASE_TYPEDEFS | ( |  | idlObj,
|  |  | hppObj
| ) |  |

Value:
protected: \
using ::hpp::corbaServer::AbstractServantBase<hppObj>::server_; \
\
public: \
typedef _Base Base; \
typedef _Storage Storage; \
typedef idlObj Object; \
typedef idlObj##_ptr Object_ptr; \
typedef idlObj##_var Object_var; \
typedef ::hpp::corbaServer::ServantBase<hppObj, _Storage> _ServantBase; \
using _ServantBase::get; \
using _ServantBase::getT; \
using _ServantBase::getS
Base
SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder > Base

## Typedef Documentation

## ◆ ServantBase_var

typedef PortableServer::Servant_var<PortableServer::ServantBase> hpp::corbaServer::ServantBase_var

## Function Documentation

## ◆ addDowncastObjects()

template<typename ServantBaseType >

void hpp::corbaServer::addDowncastObjects | ( | ServantFactoryBase< ServantBaseType > *const | object | ) |

## ◆ makeServant()

template<typename P , typename S >

P hpp::corbaServer::makeServant | ( | Server * | server,
|  | S * | s
| ) |  |

Create and activate a omniORB servant.

Template Parameters

  P | An CORBA::Object_ptr (typically S::Object_ptr)
  S | A class deriving from AbstractServantKey and PortableServer::ServantBase (or a class generated by omniidl in the namespace POA_*).

Returns
  a reference to the OmniORB servant.

Note
  if a OmniORB servant serving s exists, no servant is created and a reference to the existing servant is returned.

## ◆ makeServantDownCast() [1/2]

template<typename ServantBaseType , typename ReturnType >

ReturnType::Object_var hpp::corbaServer::makeServantDownCast | ( | Server * | server,
|  | const typename ServantBaseType::Storage & | t
| ) |  |

Create and activate a omniORB servant with class downcasting.

Template Parameters

  ServantBaseType | the top classes of the hierarchy.

## ◆ makeServantDownCast() [2/2]

template<typename ServantBaseType >

ServantBaseType::Object_var hpp::corbaServer::makeServantDownCast | ( | Server * | server,
|  | const typename ServantBaseType::Storage & | t
| ) |  |

## ◆ objectDowncasts()

template<typename ServantBaseType >

std::vector<ServantFactoryBase<ServantBaseType>*>& hpp::corbaServer::objectDowncasts | ( |  | ) |

## ◆ reference_to_object()

template<typename T , typename P >

auto hpp::corbaServer::reference_to_object | ( | Server * | server,
|  | const P & | p
| ) |  |

Template Parameters

  T | the desired HPP type
  P | the type of the object which is served.

## ◆ reference_to_servant()

template<typename S , typename P >

PortableServer::Servant_var<S> hpp::corbaServer::reference_to_servant | ( | Server * | server,
|  | const P & | p
| ) |  |

## ◆ reference_to_servant_base()

template<typename T , typename P >

AbstractServantBase<T>* hpp::corbaServer::reference_to_servant_base | ( | Server * | server,
|  | const P & | p
| ) |  |

Template Parameters

  T | the type of the servant object.
  P | the type of the object which is served.