RTT::detail::CorbaTemplateProtocol< T > Class Template Reference

For each transportable type T, specify the conversion functions. More...

#include <rtt/corba/CorbaTemplateProtocol.hpp>

Inheritance diagram for RTT::detail::CorbaTemplateProtocol< T >:
RTT::detail::TypeTransporter

List of all members.

Public Types

typedef T UserType
 The given T parameter is the type for reading DataSources.
typedef Property< T >
::DataSourceType 
PropertyType
 When Properties of T are constructed, they are non-const, non-reference.

Public Member Functions

virtual void * createBlob (DataSourceBase::shared_ptr source) const
 Create an transportable object for a protocol which contains the value of source.
virtual bool updateBlob (const void *blob, DataSourceBase::shared_ptr target) const
 Update target with the contents of blob which is an object of a protocol.
virtual DataSourceBaseproxy (void *data) const
 Create a DataSource which is a proxy for a remote object.
virtual void * server (DataSourceBase::shared_ptr source, bool assignable, void *arg) const
 Create a server for a DataSource, which can be picked up by a proxy.
virtual void * method (DataSourceBase::shared_ptr source, MethodC *orig, void *arg) const
 Create a server for a local method.
virtual DataSourceBasenarrowDataSource (DataSourceBase *dsb)
 Narrows a remote data source object or proxy to this type.
virtual DataSourceBasenarrowAssignableDataSource (DataSourceBase *dsb)
 Narrows a remote assignable data source object or proxy to this type.
virtual DataSourceBasedataProxy (PortInterface *data) const
 Returns a new DataObject<T> object mirroring a remote data object server.
virtual DataSourceBasedataProxy (void *data) const
virtual void * dataServer (DataSourceBase::shared_ptr source, void *arg) const
virtual BufferBasebufferProxy (PortInterface *data) const
 Returns a new BufferInterface<T> object mirroring a remote buffer object server.
virtual BufferBasebufferProxy (void *data) const
virtual void * bufferServer (BufferBase::shared_ptr source, void *arg) const

Detailed Description

template<class T>
class RTT::detail::CorbaTemplateProtocol< T >

For each transportable type T, specify the conversion functions.

Warning:
* * * B I G N O T E * * * * This class uses the TypeTransport of Orocos which uses (void*) for passing on data. TAO's CORBA implementation uses virtual inheritance, which does not work well together with (void*). That is, you must cast back to the exect same type the (void*) originated from and NOT to a sub- or super-class. That would have been allowed without virtual inheritance.
Hence, this class uses always the same base class (Expression_ptr) to communicate with the TypeTransport interface. Such that we know that when we receive a (void*) it came from an (Expression_ptr) and vice versa.
Don't obey this and you'll get immediate hard to dissect crashes ! * * * B I G N O T E * * * *

Definition at line 71 of file CorbaTemplateProtocol.hpp.


Member Function Documentation

template<class T >
virtual BufferBase* RTT::detail::CorbaTemplateProtocol< T >::bufferProxy ( PortInterface data  )  const [inline, virtual]

Returns a new BufferInterface<T> object mirroring a remote buffer object server.

Used to setup a Corba Data Flow.

Implements RTT::detail::TypeTransporter.

Definition at line 208 of file CorbaTemplateProtocol.hpp.

template<class T >
virtual DataSourceBase* RTT::detail::CorbaTemplateProtocol< T >::dataProxy ( PortInterface data  )  const [inline, virtual]

Returns a new DataObject<T> object mirroring a remote data object server.

Used to setup a Corba Data Flow.

Implements RTT::detail::TypeTransporter.

Definition at line 180 of file CorbaTemplateProtocol.hpp.

template<class T >
virtual void* RTT::detail::CorbaTemplateProtocol< T >::method ( DataSourceBase::shared_ptr  source,
MethodC orig,
void *  arg 
) const [inline, virtual]

Create a server for a local method.

Used to export local methods to a network.

Implements RTT::detail::TypeTransporter.

Definition at line 142 of file CorbaTemplateProtocol.hpp.

template<class T >
virtual DataSourceBase* RTT::detail::CorbaTemplateProtocol< T >::narrowAssignableDataSource ( DataSourceBase dsb  )  [inline, virtual]

Narrows a remote assignable data source object or proxy to this type.

Used internally to determine the type of a remote object.

Returns:
0 if dsb is not of this type.

Implements RTT::detail::TypeTransporter.

Definition at line 169 of file CorbaTemplateProtocol.hpp.

template<class T >
virtual DataSourceBase* RTT::detail::CorbaTemplateProtocol< T >::narrowDataSource ( DataSourceBase dsb  )  [inline, virtual]

Narrows a remote data source object or proxy to this type.

Used internally to determine the type of a remote object.

Returns:
0 if dsb is not of this type.

Implements RTT::detail::TypeTransporter.

Definition at line 148 of file CorbaTemplateProtocol.hpp.

template<class T >
virtual void* RTT::detail::CorbaTemplateProtocol< T >::server ( DataSourceBase::shared_ptr  source,
bool  assignable,
void *  arg 
) const [inline, virtual]

Create a server for a DataSource, which can be picked up by a proxy.

Used to export local data to a network.

Implements RTT::detail::TypeTransporter.

Definition at line 131 of file CorbaTemplateProtocol.hpp.


The documentation for this class was generated from the following file:
Generated on Thu Dec 23 13:22:46 2010 for Orocos Real-Time Toolkit by  doxygen 1.6.3