hpp-corbaserver  4.9.0
Corba server for Humanoid Path Planner applications
Extending the bindings

Classes

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 >
hpp::corbaServer::makeServant (Server *server, S *s)
 
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 boost::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<boost::shared_ptr<ClassA>, _Storage >
  • Add SERVANT_BASE_TYPEDEFS(ClassAServant, boost::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 boost::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 AbstractServantBase<hppObj>::server_; \
public: \
typedef _Base Base; \
typedef _Storage Storage; \
typedef idlObj Object; \
typedef idlObj ## _ptr Object_ptr; \
typedef idlObj ## _var Object_var; \
typedef ServantBase<hppObj, _Storage> _ServantBase; \
using _ServantBase::get; \
using _ServantBase::getT; \
using _ServantBase::getS
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
PAn CORBA::Object_ptr (typically S::Object_ptr)
SA 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
ServantBaseTypethe 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_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 
)