Orocos Real-Time Toolkit
2.8.3
|
#include <rtt/transports/mqueue/MQSerializationProtocol.hpp>
Public Types | |
typedef T | UserType |
The given T parameter is the type for reading DataSources. More... | |
Public Member Functions | |
MQSerializationProtocol () | |
virtual std::pair< void const *, int > | 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. More... | |
virtual bool | 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. More... | |
virtual unsigned int | getSampleSize (base::DataSourceBase::shared_ptr sample, void *cookie) const |
Returns the size in bytes of a marshalled data element. More... | |
virtual base::ChannelElementBase::shared_ptr | createStream (base::PortInterface *port, const ConnPolicy &policy, bool is_sender) const |
Creates a streaming channel element for reading or writing over this transport. More... | |
virtual void * | createCookie () const |
Overload in subclasses for marshallers that need to allocate some internal data. More... | |
virtual void | deleteCookie (void *cookie) const |
Called to delete a cookie created with createCookie. More... | |
Definition at line 61 of file MQSerializationProtocol.hpp.
|
inherited |
The given T parameter is the type for reading DataSources.
Definition at line 67 of file MQTemplateProtocolBase.hpp.
|
inline |
Definition at line 65 of file MQSerializationProtocol.hpp.
|
inlinevirtualinherited |
Overload in subclasses for marshallers that need to allocate some internal data.
The protocol will call deleteCookie(void*) accordingly
Definition at line 68 of file TypeMarshaller.hpp.
Referenced by RTT::mqueue::MQSendRecv::setupStream().
|
inlinevirtualinherited |
Creates a streaming channel element for reading or writing over this transport.
It returns a ChannelElementBase that provides the implementation of sending or receiving data through the transport. Both sender and receiver find each other using the channel_id argument. Transports that do not support streaming may return null
port | The port for which this channel is setup. |
channel_id | If the transport receives a non-empty channel_id, it will create a channel that connects to this id. If channel id is empty, it will be filled in with a unique identifier that identifies this channel. This allows the local caller to connect to the remote channel in a second invocation of createRemoteChannel. |
is_sender | Set to true in case you will write() to this channel element, set it to false in case you will read() from this channel element. |
Implements RTT::types::TypeTransporter.
Definition at line 69 of file MQTemplateProtocolBase.hpp.
References RTT::types::TypeInfo::buildDataStorage(), RTT::Error, and RTT::internal::DataSourceTypeInfo< T >::getTypeInfo().
|
inlinevirtualinherited |
Called to delete a cookie created with createCookie.
Definition at line 70 of file TypeMarshaller.hpp.
References RTT::types::TypeMarshaller::fillBlob(), RTT::types::TypeMarshaller::getSampleSize(), and RTT::types::TypeMarshaller::updateFromBlob().
Referenced by RTT::mqueue::MQSendRecv::cleanupStream().
|
inlinevirtual |
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
source | The data to be read |
blob | Suggested 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. |
size | The size of the memory area pointed by blob |
size
Implements RTT::types::TypeMarshaller.
Definition at line 68 of file MQSerializationProtocol.hpp.
References RTT::mqueue::binary_data_oarchive::getArchiveSize(), and RTT::internal::DataSource< T >::rvalue().
|
inlinevirtual |
Returns the size in bytes of a marshalled data element.
Implements RTT::types::TypeMarshaller.
Definition at line 98 of file MQSerializationProtocol.hpp.
References RTT::Error, RTT::internal::DataSource< T >::get(), and RTT::mqueue::binary_data_oarchive::getArchiveSize().
|
inlinevirtual |
Update target with the contents of blob which is an object of a protocol.
Implements RTT::types::TypeMarshaller.
Definition at line 86 of file MQSerializationProtocol.hpp.
References RTT::internal::AssignableDataSource< T >::narrow(), and RTT::internal::AssignableDataSource< T >::set().