MIRA
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ChannelReadWriteCommonBase< Derived > Class Template Reference

#include <fw/ChannelReadWrite.h>

Inheritance diagram for ChannelReadWriteCommonBase< Derived >:
Inheritance graph
[legend]

Public Types

typedef ChannelReadWriteTraits< Derived >::Shared Shared
 
typedef boost::shared_ptr< SharedSharedPtr
 
typedef Shared::ChannelType ChannelType
 
typedef Shared::ChannelTypePtr ChannelTypePtr
 
typedef Shared::Slot Slot
 
typedef Shared::ValueType ValueType
 

Public Member Functions

 ChannelReadWriteCommonBase ()
 Constructs an empty (invalid) ChannelReadWriteBase object. More...
 
 ChannelReadWriteCommonBase (ChannelTypePtr channel, ChannelBufferBase::Slot *slot)
 Constructs a valid ChannelReadWriteBase object that is assigned to a channel and slot. More...
 
bool isValid () const
 Returns true, if data was assigned to the ChannelRead or ChannelWrite and if this data is locked. More...
 
const std::string & getChannelID ()
 
std::string getTypename () const
 
TypeMetaPtr getTypeMeta () const
 
const TimegetTimestamp () const
 
int getUseCount () const
 Returns the number of shared instances for this data, may be useful for debugging purposes. More...
 
uint32 getFlags () const
 For internal use only. More...
 
void addFlags (uint32 moreFlags) const
 For internal use only. More...
 

Protected Member Functions

void checkValid () const
 checks if we are still locked, if not it throws a XAccessViolation More...
 
const Buffer< uint8 > & readSerializedValue ()
 
const Buffer< uint8 > & readSerializedValue (uint8 formatVersion, bool orLower)
 
Buffer< uint8 > readSerializedValue (std::list< BinarySerializerCodecPtr > &codecs)
 Same as above, but allows to specify codecs for serialization. More...
 
Buffer< uint8 > readSerializedValue (std::list< BinarySerializerCodecPtr > &codecs, uint8 formatVersion, bool orLower)
 
void readJSON (JSONValue &oValue)
 
void readJSON (JSONValue &oValue, JSONSerializer &serializer)
 
void writeSerializedValue (Buffer< uint8 > data)
 
void writeJSON (const JSONValue &value)
 
void writeJSON (JSONDeserializer &deserializer)
 
void writeXML (const XMLDom::const_iterator &node)
 

Protected Attributes

SharedPtr shared
 

Detailed Description

template<typename Derived>
class mira::ChannelReadWriteCommonBase< Derived >

Note
: NEVER EXPOSE THE CHANNELPTR OR CHANNEL DIRECTLY TO THE USER. The user is allowed to access the channel using the Channel<T> proxy ONLY!

Member Typedef Documentation

◆ Shared

◆ SharedPtr

typedef boost::shared_ptr<Shared> SharedPtr

◆ ChannelType

typedef Shared::ChannelType ChannelType

◆ ChannelTypePtr

typedef Shared::ChannelTypePtr ChannelTypePtr

◆ Slot

typedef Shared::Slot Slot

◆ ValueType

typedef Shared::ValueType ValueType

Constructor & Destructor Documentation

◆ ChannelReadWriteCommonBase() [1/2]

Constructs an empty (invalid) ChannelReadWriteBase object.

◆ ChannelReadWriteCommonBase() [2/2]

Constructs a valid ChannelReadWriteBase object that is assigned to a channel and slot.

Member Function Documentation

◆ isValid()

bool isValid ( ) const
inline

Returns true, if data was assigned to the ChannelRead or ChannelWrite and if this data is locked.

If this method returns true, you can safely access the underlying data.

If this method returns false, no data was assigned to the ChannelRead / ChannelWrite or the lock on the data was lost. Hence, it is not safe to access the underlying data. If you try to access the data anyway you will get an XRuntime exception.

◆ getChannelID()

const std::string& getChannelID ( )
inline

◆ getTypename()

std::string getTypename ( ) const
inline

◆ getTypeMeta()

TypeMetaPtr getTypeMeta ( ) const
inline

◆ getTimestamp()

const Time& getTimestamp ( ) const
inline

◆ getUseCount()

int getUseCount ( ) const
inline

Returns the number of shared instances for this data, may be useful for debugging purposes.

◆ getFlags()

uint32 getFlags ( ) const
inline

For internal use only.

Used by remote components of the framework and by player and recorder. Returns current flags of this slot;

◆ addFlags()

void addFlags ( uint32  moreFlags) const
inline

For internal use only.

Used by remote components of the framework and by player and recorder. Add additional flags to the slots flags.

◆ checkValid()

void checkValid ( ) const
inlineprotected

checks if we are still locked, if not it throws a XAccessViolation

◆ readSerializedValue() [1/4]

const Buffer<uint8>& readSerializedValue ( )
inlineprotected

◆ readSerializedValue() [2/4]

const Buffer<uint8>& readSerializedValue ( uint8  formatVersion,
bool  orLower 
)
inlineprotected

◆ readSerializedValue() [3/4]

Buffer<uint8> readSerializedValue ( std::list< BinarySerializerCodecPtr > &  codecs)
inlineprotected

Same as above, but allows to specify codecs for serialization.

◆ readSerializedValue() [4/4]

Buffer<uint8> readSerializedValue ( std::list< BinarySerializerCodecPtr > &  codecs,
uint8  formatVersion,
bool  orLower 
)
inlineprotected

◆ readJSON() [1/2]

void readJSON ( JSONValue oValue)
inlineprotected

◆ readJSON() [2/2]

void readJSON ( JSONValue oValue,
JSONSerializer serializer 
)
inlineprotected

◆ writeSerializedValue()

void writeSerializedValue ( Buffer< uint8 >  data)
inlineprotected

◆ writeJSON() [1/2]

void writeJSON ( const JSONValue value)
inlineprotected

◆ writeJSON() [2/2]

void writeJSON ( JSONDeserializer deserializer)
inlineprotected

◆ writeXML()

void writeXML ( const XMLDom::const_iterator node)
inlineprotected

Member Data Documentation

◆ shared

SharedPtr shared
protected

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