Classes and functions related to the addition of HPP class bindings.
More...
|
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) |
| Create and activate a omniORB servant. More...
|
|
template<typename U , typename V , template< typename > class StorageTpl> |
static StorageTpl< U > | hpp::corbaServer::storage_cast (const StorageTpl< V > &o) |
| Cast the storage class of a servant. More...
|
|
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) |
| Create and activate a omniORB servant with class downcasting. More...
|
|
template<typename ServantBaseType > |
ServantBaseType::Object_var | hpp::corbaServer::makeServantDownCast (Server *server, const typename ServantBaseType::Storage &t) |
|
template<typename ObjectRef , typename Types , typename T , template< typename > class StorageTpl> |
ObjectRef::_var_type | hpp::corbaServer::makeServantDownCast (Server *server, const StorageTpl< T > &t) |
| Create and activate a omniORB servant with class downcasting. More...
|
|
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.
#define SERVANT_BASE_TYPEDEFS |
( |
|
idlObj, |
|
|
|
hppObj |
|
) |
| |
Value:protected: \
using AbstractServantBase<hppObj>::server_; \
public: \
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
#define SERVANT_BASE_TYPEDEFS |
( |
|
idlObj, |
|
|
|
hppObj |
|
) |
| |
Value:protected: \
using AbstractServantBase<hppObj>::server_; \
public: \
typedef _Storage Storage; \
typedef idlObj Object; \
typedef idlObj ## _ptr Object_ptr; \
typedef ServantBase<hppObj, _Storage> _ServantBase; \
using _ServantBase::get; \
using _ServantBase::getS
SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder > Base
#define SERVANT_BASE_TYPEDEFS |
( |
|
idlObj, |
|
|
|
hppObj |
|
) |
| |
Value:protected: \
using AbstractServantBase<hppObj>::server_; \
public: \
typedef _Storage Storage; \
typedef idlObj Object; \
typedef idlObj ## _ptr Object_ptr; \
typedef ServantBase<hppObj, _Storage> _ServantBase; \
using _ServantBase::get; \
using _ServantBase::getS
SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder > Base
#define SERVANT_BASE_TYPEDEFS |
( |
|
idlObj, |
|
|
|
hppObj |
|
) |
| |
Value:protected: \
using AbstractServantBase<hppObj>::server_; \
public: \
typedef _Storage Storage; \
typedef idlObj Object; \
typedef idlObj ## _ptr Object_ptr; \
typedef ServantBase<hppObj, _Storage> _ServantBase; \
using _ServantBase::get; \
using _ServantBase::getS
SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder > Base
template<typename ServantBaseType >
void hpp::corbaServer::addDowncastObjects |
( |
ServantFactoryBase< ServantBaseType > *const |
object | ) |
|
template<typename P , typename S >
P hpp::corbaServer::makeServant |
( |
Server * |
server, |
|
|
S * |
s |
|
) |
| |
template<typename ObjectRef , typename Types , typename T , template< typename > class StorageTpl>
ObjectRef::_var_type hpp::corbaServer::makeServantDownCast |
( |
Server * |
server, |
|
|
const StorageTpl< T > & |
t |
|
) |
| |
Create and activate a omniORB servant with class downcasting.
This automaticcally downcast
- Template Parameters
-
ObjectRef | the return type. |
Types | a boost::mpl::vector of types to check. The order matters. Put the base classes after their children. |
T | the HPP class |
StorageTpl | either boost::shared_ptr or a class inheriting from AbstractStorage |
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 |
|
) |
| |
template<typename ServantBaseType >
std::vector< ServantFactoryBase<ServantBaseType>* >& hpp::corbaServer::objectDowncasts |
( |
| ) |
|
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 U , typename V , template< typename > class StorageTpl>
static StorageTpl<U> hpp::corbaServer::storage_cast |
( |
const StorageTpl< V > & |
o | ) |
|
|
static |