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.
◆ SERVANT_BASE_TYPEDEFS
#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
◆ ServantBase_var
◆ 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_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 >