Public Types | Public Member Functions | List of all members
RTT::mqueue::MQTemplateProtocol< T > Class Template Reference

#include <MQTemplateProtocol.hpp>

Inheritance diagram for RTT::mqueue::MQTemplateProtocol< T >:
Inheritance graph

Public Types

typedef T UserType
- Public Types inherited from RTT::mqueue::MQTemplateProtocolBase< T >
typedef T UserType

Public Member Functions

 BOOST_STATIC_ASSERT (!boost::has_virtual_destructor< T >::value)
virtual std::pair< void const *, int > fillBlob (base::DataSourceBase::shared_ptr source, void *blob, int size, void *cookie) const
virtual unsigned int getSampleSize (base::DataSourceBase::shared_ptr ignored, void *cookie) const
virtual bool updateFromBlob (const void *blob, int size, base::DataSourceBase::shared_ptr target, void *cookie) const
- Public Member Functions inherited from RTT::mqueue::MQTemplateProtocolBase< T >
virtual base::ChannelElementBase::shared_ptr createStream (base::PortInterface *port, const ConnPolicy &policy, bool is_sender) const
- Public Member Functions inherited from RTT::types::TypeMarshaller
virtual void * createCookie () const
virtual void deleteCookie (void *cookie) const
- Public Member Functions inherited from RTT::types::TypeTransporter
virtual ~TypeTransporter ()

Detailed Description

template<class T>
class RTT::mqueue::MQTemplateProtocol< T >

For each transportable type T, specify the conversion functions.

This can only be used if T is a trivial type without meaningful (copy) constructor. For all other cases, or in doubt, use the MQSerializationProtocol class.

Definition at line 61 of file MQTemplateProtocol.hpp.

Member Typedef Documentation

template<class T >
typedef T RTT::mqueue::MQTemplateProtocol< T >::UserType

The given T parameter is the type for reading DataSources.

Definition at line 74 of file MQTemplateProtocol.hpp.

Member Function Documentation

template<class T >
RTT::mqueue::MQTemplateProtocol< T >::BOOST_STATIC_ASSERT ( !boost::has_virtual_destructor< T >::value  )

We don't support types with virtual functions ! TODO: use this type trait to make the necessary adjustments in the memcopy (adding the vptr table offset).

template<class T >
virtual std::pair<void const*,int> RTT::mqueue::MQTemplateProtocol< T >::fillBlob ( base::DataSourceBase::shared_ptr  source,
void *  blob,
int  size,
void *  cookie 
) const

Create an transportable object for a protocol which contains the value of source. This must be a real-time function which does not allocate memory

sourceThe data to be read
blobSuggested target memory area to write to. In case the type marshaller does not need this, it will return an alternative as a first element in the returned std::pair.
sizeThe size of the memory area pointed by blob
Returns (0,0) if the filling failed, otherwise, points to the filled memory area and the effectively written size. The returned pointer may differ from blob, in case blob was not used. The returned size must be lower or equal than size

Implements RTT::types::TypeMarshaller.

Definition at line 76 of file MQTemplateProtocol.hpp.

template<class T >
virtual unsigned int RTT::mqueue::MQTemplateProtocol< T >::getSampleSize ( base::DataSourceBase::shared_ptr  sample,
void *  cookie 
) const

Returns the size in bytes of a marshalled data element.

the size.

Implements RTT::types::TypeMarshaller.

Definition at line 94 of file MQTemplateProtocol.hpp.

template<class T >
virtual bool RTT::mqueue::MQTemplateProtocol< T >::updateFromBlob ( const void *  blob,
int  size,
base::DataSourceBase::shared_ptr  target,
void *  cookie 
) const

Update target with the contents of blob which is an object of a protocol. The given data source is guaranteed to be an AssignableDataSource

Implements RTT::types::TypeMarshaller.

Definition at line 83 of file MQTemplateProtocol.hpp.

The documentation for this class was generated from the following file:

Author(s): RTT Developers
autogenerated on Fri Oct 25 2019 03:59:47