47 #ifndef _MIRA_CHANNELBUFFER_H_ 48 #define _MIRA_CHANNELBUFFER_H_ 52 #include <type_traits> 55 #include <boost/noncopyable.hpp> 56 #include <boost/thread/mutex.hpp> 57 #include <boost/thread/shared_mutex.hpp> 80 template <
typename TargetType>
84 template <
typename TargetType>
134 template <
typename TargetType>
137 template <
typename TargetType>
199 virtual ~Slot() =
default;
200 virtual std::unique_ptr<Slot>
clone() = 0;
211 mStorageDuration(
Duration::seconds(0)),
212 mAutoIncreaseStorageDuration(true),
228 mMinSlots = other.mMinSlots;
229 mMaxSlots = other.mMaxSlots;
230 mStorageDuration = other.mStorageDuration;
231 mAutoIncreaseStorageDuration = other.mAutoIncreaseStorageDuration;
303 virtual bool isTyped()
const = 0;
369 uint8 formatVersion,
bool orLower) = 0;
377 std::list<BinarySerializerCodecPtr>& codecs) = 0;
387 std::list<BinarySerializerCodecPtr>& codecs,
388 uint8 formatVersion,
bool orLower) = 0;
508 std::size_t olderSlots, std::size_t newerSlots,
528 template<
typename TargetType>
538 Slot* findFirstOlderSlot(
const Time& timestamp, Slot* start=NULL);
546 void splice(Slot* first, Slot* last, Slot* position)
const;
552 void splice(Slot* item, Slot* position)
const {
553 splice(item,item,position);
556 static bool isEmpty(
const ListItem& list) {
return list.next == &list; }
557 static Slot* begin(ListItem& list) {
return list.next; }
558 static Slot* last(ListItem& list) {
return list.prev; }
559 static Slot* end(ListItem& list) {
return (Slot*)&list; }
562 void deleteSlots(ListItem& list);
575 void resetSlot(Slot* s);
578 Duration mStorageDuration;
579 bool mAutoIncreaseStorageDuration;
580 std::size_t mMinSlots;
581 std::size_t mMaxSlots;
585 mutable boost::mutex mMutex;
603 ListItem mWaitingOrFree;
614 std::string dbgDumpList(ListItem& list,
bool brief);
618 void dbgDump(
const std::string& prefix,
bool brief=
true);
629 template <
typename T>
646 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
648 std::unique_ptr<ChannelBufferBase::Slot>
clone()
override {
649 auto slot = std::make_unique<Slot>();
652 slot->flags = this->
flags;
653 slot->data = this->
data;
668 return static_cast<Slot*
>(s);
681 MIRA_THROW(XRuntime,
"Cannot set Typename for typed channels");
723 bs.
serialize(slot->data.internalValueRep(),
false);
731 uint8 formatVersion,
bool orLower)
733 uint8 serializerVersion = BinaryBufferSerializer::getSerializerFormatVersion();
735 if (formatVersion == serializerVersion)
738 if (formatVersion == 0) {
750 bs.
serialize(slot->data.internalValueRep(),
false);
756 MIRA_THROW(XIO,
"Requested serialized data of binary format version " << (
int)formatVersion
757 <<
". Only implemented for versions 0, " << (
int)serializerVersion <<
".");
761 std::list<BinarySerializerCodecPtr>& codecs)
775 bs.
serialize(slot->data.internalValueRep(),
false);
777 return std::move(serializedValue);
781 std::list<BinarySerializerCodecPtr>& codecs,
782 uint8 formatVersion,
bool orLower)
784 uint8 serializerVersion = BinaryBufferSerializer::getSerializerFormatVersion();
786 if (formatVersion == serializerVersion)
789 if (formatVersion == 0) {
802 bs.
serialize(slot->data.internalValueRep(),
false);
804 return std::move(serializedValue);
807 MIRA_THROW(XIO,
"Requested serialized data of binary format version " << (
int)formatVersion
808 <<
". Only implemented for versions 0, " << (
int)serializerVersion <<
".");
822 boost::mutex::scoped_lock lock(mCodecsMutex);
825 bs.
deserialize(slot->data.internalValueRep(),
false);
827 boost::mutex::scoped_lock lock(mCodecsMutex);
838 oValue = json.
serialize(slot->data.internalValueRep());
847 oValue = serializer.
serialize(slot->data.internalValueRep());
864 deserializer.
deserialize(slot->data.internalValueRep());
872 const std::string rootTag = *node;
880 boost::mutex mCodecsMutex;
889 template <
typename T>
911 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
913 std::unique_ptr<ChannelBufferBase::Slot>
clone()
override {
914 auto slot = std::make_unique<Slot>();
916 slot->timestampPtr = &slot->header.timestamp;
917 slot->flags = this->
flags;
918 slot->header = this->header;
930 return static_cast<Slot*
>(s);
946 virtual bool isTyped()
const {
return false; }
951 MIRA_THROW(XRuntime,
"Cannot create type meta for untyped channels");
985 uint8 formatVersion,
bool orLower)
988 uint8 dataVersion = BinaryBufferDeserializer::getDataFormatVersion(stream);
989 if ((!orLower && (dataVersion != formatVersion)) || (dataVersion > formatVersion)) {
990 MIRA_THROW(XIO,
"Untyped channel contains serialized data of version " << (
int)dataVersion
991 <<
", cannot return data of version " << (
int)formatVersion <<
".");
999 std::list<BinarySerializerCodecPtr>& codecs)
1006 std::list<BinarySerializerCodecPtr>& codecs,
1007 uint8 formatVersion,
bool orLower)
1086 template <
typename T>
1089 static_assert(std::is_base_of<mira::Object,T>::value,
1090 "In channels you can only use pointers of polymorphic " 1091 "classes that are derived from mira::Object. Pointers to " 1092 "other classes cannot be stored in a channel.");
1098 mMostDerivedClass = &T::CLASS();
1111 template <
typename U>
1112 struct ChannelBufferPromoterCommon
1117 "Can promote untyped channels to typed channels only");
1120 MIRA_THROW(XBadCast,
"Invalid promotion from untyped to typed " 1121 "ChannelBuffer. Typename does not match. ('" <<
1122 buffer->
getTypename() <<
"' != '" << typeName<U>() <<
"'");
1136 for(Slot* s=ChannelBufferBase::begin(buffer->mBuffer);
1137 s!=ChannelBufferBase::end(buffer->mBuffer); s=s->next)
1138 s->lock.lock_shared();
1141 for(Slot* s=ChannelBufferBase::begin(buffer->mBuffer);
1142 s!=ChannelBufferBase::end(buffer->mBuffer); s=s->next)
1156 for(Slot* s=ChannelBufferBase::begin(buffer->mBuffer);
1157 s!=ChannelBufferBase::end(buffer->mBuffer); s=s->next)
1158 s->lock.unlock_shared();
1176 template <
typename U>
1177 struct ChannelBufferPromoter :
public ChannelBufferPromoterCommon<U>
1184 return Base::promoteUntyped(buffer);
1194 template <
typename U>
1202 buffer = Base::promoteUntyped(buffer);
1206 assert(polymorphicBuffer!=NULL &&
1207 "We should never reach here if the buffer to promote is not " 1211 const Class* classU = &U::CLASS();
1214 polymorphicBuffer->
promote(classU);
1216 return polymorphicBuffer;
1222 template<
typename U>
Serializer for serializing objects in JSON format.
Definition: JSONSerializer.h:93
virtual void writeJSON(ChannelBufferBase::Slot *s, const JSONValue &value)
Writes data in json representation into the slot, using a default-instantiated JSONDeserializer.
Definition: ChannelBuffer.h:850
Slot * readSlotAtTime(const Time ×tamp, SlotQueryMode mode)
Returns a slot at the given time according to mode.
virtual void freeSlot(ChannelBufferBase::Slot *s)
Called to destroy the slot and free the used memory.
Definition: ChannelBuffer.h:696
void deserialize(T &value)
Definition: JSONSerializer.h:428
virtual ChannelBufferBase::Slot * allocateSlot()
Creates and returns a new slot.
void setStorageDuration(const Duration &storageDuration)
Sets the desired storage duration (the history).
boost::shared_mutex lock
Definition: ChannelBuffer.h:166
EIGEN_MAKE_ALIGNED_OPERATOR_NEW std::unique_ptr< ChannelBufferBase::Slot > clone() override
Definition: ChannelBuffer.h:648
Definition: BinarySerializer.h:316
const Time * timestampPtr
Pointer to the actual timestamp in the slot data for easy access.
Definition: ChannelBuffer.h:178
const Class * mFixatedClass
Definition: ChannelBuffer.h:1074
virtual TypeMetaPtr createTypeMeta(ChannelBufferBase::Slot *s, MetaTypeDatabase &ioDB)
Creates meta information for data in slot and stores all meta information in the given database...
Definition: ChannelBuffer.h:950
virtual void readJSON(Slot *s, JSONValue &oValue)=0
Reads data of that slot as json representation using a default-instantiated JSONSerializer.
boost::mutex serializedValueLock
Lock for writing serializedValue in readSerializedData.
Definition: ChannelBuffer.h:173
const Class * mMostDerivedClass
Definition: ChannelBuffer.h:1073
bool isAutoIncreasingStorageDuration() const
Returns whether the storage duration is automatically increased.
Include file for all eigen related things.
virtual ~ChannelBuffer()
Definition: ChannelBuffer.h:937
Typed slot derived from ChannelBufferBase::Slot.
Definition: ChannelBuffer.h:643
void promote(const Class *promotionClass)
Promotes the polymorphic type of the channel to the given class type.
virtual void freeSlot(Slot *s)=0
Called to destroy the slot and free the used memory.
The first slot with timestamp < requested will be chosen.
Definition: ChannelBuffer.h:96
virtual void writeSerializedValue(ChannelBufferBase::Slot *s, Buffer< uint8 > data)
Write the given buffer (that contains binary serialized data WITHOUT the StampedHeader) to the slot...
Definition: ChannelBuffer.h:1013
virtual Buffer< uint8 > readSerializedValue(ChannelBufferBase::Slot *s, std::list< BinarySerializerCodecPtr > &codecs, uint8 formatVersion, bool orLower)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:780
Slot * castSlot(ChannelBufferBase::Slot *s)
Cast an abstract slot to a typed slot.
Definition: ChannelBuffer.h:928
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
virtual TypeMetaPtr createTypeMeta(Slot *s, MetaTypeDatabase &ioDB)=0
Creates meta information for data in slot and stores all meta information in the given database...
std::string Typename
Definition: Typename.h:60
virtual ChannelBufferBase::Slot * allocateSlot()
Creates and returns a new slot.
Definition: ChannelBuffer.h:691
Specialization for polymorphic types (only classes derived from mira::Object are supported!) ...
Definition: ChannelBuffer.h:1087
ValueType header
Definition: ChannelBuffer.h:910
virtual bool isTyped() const
Returns true, if the channel is typed and false, if it is untyped.
Definition: ChannelBuffer.h:946
Time and Duration wrapper class.
Class object which supports some kind of class reflection.
Definition: Class.h:97
virtual void freeSlot(ChannelBufferBase::Slot *s)
Called to destroy the slot and free the used memory.
virtual Typename getTypename() const
Returns the Typename of the slot values, in contrast to getTypeId() the Typename is portable and uniq...
Definition: ChannelBuffer.h:948
virtual void setTypename(const Typename &name)=0
Sets the Typename of the slot values.
ListItem()
Definition: ChannelBuffer.h:150
Stamped class specialization for polymorphic pointers.
Definition: Stamped.h:238
StampedHeader & stampedHeader(Stamped< T > &data)
Helper to extract the header from stamped data.
Definition: Stamped.h:482
ChannelBufferBase * promote()
Promotes this buffer to the specified target type (if required).
Definition: ChannelBuffer.h:1223
TypeMetaPtr getTypeMeta() const
Returns the meta information for the slots type.
Definition: ChannelBuffer.h:329
Base class for typed channel buffers.
Definition: ChannelBuffer.h:630
void setMinSlots(std::size_t minSlots)
Sets the desired min.
virtual void fixateType()
Calling this method will fix the type of the ChannelBuffer.
Definition: ChannelBuffer.h:690
static void dbgCheckListIntegrity(const ListItem &list)
Get compiler and platform independent typenames.
virtual Slot * allocateSlot()=0
Creates and returns a new slot.
void serialize(const std::string &name, const T &value, const std::string &comment="")
Serializes the specified object value under the given name.
Definition: Serializer.h:204
#define MIRA_THROW(ex, msg)
Macro for throwing an exception.
Definition: Exception.h:78
void serialize(const T &value, bool enableTypeCheck=true)
Provides a special serialize interface for the BinarySerializer.
Definition: BinarySerializer.h:590
Implements double-linked list item.
Definition: ChannelBuffer.h:148
Const sibling_iterator for iterating over xml nodes that have the same parent (siblings) ...
Definition: XMLDom.h:763
virtual StampedHeader & getStampedHeader(ChannelBufferBase::Slot *s)
Returns a reference to the stamped header information.
Definition: ChannelBuffer.h:971
Wrapper class for boost::posix_time::ptime for adding more functionality to it.
Definition: Time.h:418
Slot * requestWriteSlot()
Returns a slot for writing, where the shared_mutex is already write locked.
virtual const Buffer< uint8 > & readSerializedValue(ChannelBufferBase::Slot *s, uint8 formatVersion, bool orLower)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:730
ChannelBuffer()
Definition: ChannelBuffer.h:1097
virtual int getTypeId() const
Returns typeid of the slot values, the allocator creates.
A channel buffer for polymorphic types (classes derived from mira::Object)
Definition: ChannelBuffer.h:1037
Deserializer for serializing objects from JSON format.
Definition: JSONSerializer.h:401
virtual void writeXML(Slot *s, const XMLDom::const_iterator &node)=0
Writes data in xml representation into the slot, using a default-instantiated XMLDeserializer and the...
virtual int getTypeId() const
Returns typeid of the slot values, the allocator creates.
Definition: ChannelBuffer.h:945
virtual ~TypedChannelBufferBase()
Definition: ChannelBuffer.h:638
void setTypeMeta(TypeMetaPtr meta)
Sets the meta information of the slot's type.
Definition: ChannelBuffer.h:334
Binary serializer and deserializer.
PolymorphicChannelBuffer()
Constructor.
Definition: ChannelBuffer.h:1044
void registerCodec(BinarySerializerCodecPtr codec)
Registers the specified codec instance in this binary serializer.
Definition: BinarySerializer.h:756
virtual Buffer< uint8 > readSerializedValue(ChannelBufferBase::Slot *s, std::list< BinarySerializerCodecPtr > &codecs)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:998
virtual void writeSerializedValue(ChannelBufferBase::Slot *s, Buffer< uint8 > data)
Write the given buffer (that contains binary serialized data WITHOUT the StampedHeader) to the slot...
Definition: ChannelBuffer.h:811
virtual bool isPolymorphic() const
Returns true if the channel has a polymorphic type.
Definition: ChannelBuffer.h:947
virtual const Buffer< uint8 > & readSerializedValue(Slot *s)=0
Returns a buffer containing the binary serialized data of the slot.
virtual TypeMetaPtr createTypeMeta(ChannelBufferBase::Slot *s, MetaTypeDatabase &ioDB)
Creates meta information for data in slot and stores all meta information in the given database...
Definition: ChannelBuffer.h:683
Slot * castSlot(ChannelBufferBase::Slot *s)
Cast an abstract slot to a typed slot.
Definition: ChannelBuffer.h:663
virtual StampedHeader & getStampedHeader(ChannelBufferBase::Slot *s)
Returns a reference to the stamped header information.
Definition: ChannelBuffer.h:704
Stamped< T * > ValueType
Definition: ChannelBuffer.h:1092
Core class of the logging library.
Use this class to represent time durations.
Definition: Time.h:106
virtual bool isPolymorphic() const
Returns true if the channel has a polymorphic type.
Definition: ChannelBuffer.h:678
const CodecsMap & getCodecs() const
Return the map of currently known codecs.
Definition: BinarySerializer.h:1570
bool empty() const
Checks if the buffer is empty (used size == 0).
Definition: Buffer.h:299
Typed ChannelBuffer.
Definition: ChannelBuffer.h:890
The slot with smallest time difference to the requested will be chosen.
Definition: ChannelBuffer.h:102
virtual void fixateType()=0
Calling this method will fix the type of the ChannelBuffer.
virtual StampedHeader & getStampedHeader(Slot *s)=0
Returns a reference to the stamped header information.
ChannelBuffer()
Definition: ChannelBuffer.h:935
virtual const Buffer< uint8 > & readSerializedValue(ChannelBufferBase::Slot *s, uint8 formatVersion, bool orLower)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:984
Mix in for adding a time stamp, an optional frame id and an optional sequence id to data types like P...
Definition: Stamped.h:149
boost::shared_ptr< TypeMeta > TypeMetaPtr
Definition: MetaSerializer.h:309
virtual int getTypeId() const
Returns typeid of the slot values, the allocator creates.
Definition: ChannelBuffer.h:676
virtual void freeSlot(ChannelBufferBase::Slot *s)
Called to destroy the slot and free the used memory.
Definition: ChannelBuffer.h:963
Mix in for adding a timestamp to data types.
virtual Buffer< uint8 > readSerializedValue(ChannelBufferBase::Slot *s, std::list< BinarySerializerCodecPtr > &codecs, uint8 formatVersion, bool orLower)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:1005
virtual void readJSON(ChannelBufferBase::Slot *s, JSONValue &oValue, JSONSerializer &serializer)
Reads data of that slot as json representation using the provided JSONSerializer. ...
Definition: ChannelBuffer.h:841
Stamped< T > ValueType
Definition: ChannelBuffer.h:634
void cloneParameters(const ChannelBufferBase &other)
Copies the parameters of other to this.
Definition: ChannelBuffer.h:226
virtual bool isPolymorphic() const =0
Returns true if the channel has a polymorphic type.
void dbgDump(const std::string &prefix, bool brief=true)
void setMaxSlots(std::size_t maxSlots)
Sets the max.
virtual ~ChannelBufferBase()
virtual bool isPolymorphic() const
Returns true if the channel has a polymorphic type.
Definition: ChannelBuffer.h:1053
ValueType data
the actual data value, that is stored in this channel's slots
Definition: ChannelBuffer.h:645
Base class that manages the slots of channels by providing read and write access to them...
Definition: ChannelBuffer.h:132
const Time & timestamp() const
Definition: ChannelBuffer.h:194
Container for storing a single data element in the linked list.
Definition: ChannelBuffer.h:164
std::size_t getMaxSlots() const
Returns the size of the max number of slots.
bool finishWriteSlot(Slot *n, bool *dropped=NULL)
Adds written slot into buffer at the right time position.
void setCodecs(const CodecsMap &codecs)
Set the map of known codecs.
Definition: BinarySerializer.h:1575
Slot * readNewestSlot()
Returns the newest(latest) slot for reading, where the shared_mutex is already read locked...
virtual void setTypename(const Typename &name)
Sets the Typename of the slot values.
Definition: ChannelBuffer.h:680
virtual void fixateType()
Calling this method will fix the type of the ChannelBuffer.
Definition: ChannelBuffer.h:955
Input stream adapter that can be assigned to any input stream and allows binary input using the >> st...
Definition: BinaryStream.h:525
Slot * next
Definition: ChannelBuffer.h:157
std::size_t getSize() const
Returns the size of the buffer.
virtual Typename getTypename() const
Returns the Typename of the slot values, in contrast to getTypeId() the Typename is portable and uniq...
Buffer< uint8 > serializedValue
The data of this slot as serialized data.
Definition: ChannelBuffer.h:184
virtual void readJSON(ChannelBufferBase::Slot *s, JSONValue &oValue)
Reads data of that slot as json representation using a default-instantiated JSONSerializer.
Definition: ChannelBuffer.h:832
virtual void fixateType()
Calling this method will fix the type of the ChannelBuffer.
virtual const Buffer< uint8 > & readSerializedValue(ChannelBufferBase::Slot *s)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:979
void deserialize(T &value, bool enableTypeCheck=true, bool recursive=false)
Provides a special deserialize interface for the BinaryDeserializer.
Definition: BinarySerializer.h:1329
StampedHeader ValueType
Definition: ChannelBuffer.h:904
virtual void writeSerializedValue(ChannelBufferBase::Slot *s, Buffer< uint8 > data)
Write the given buffer (that contains binary serialized data WITHOUT the StampedHeader) to the slot...
virtual bool isTyped() const
Returns true, if the channel is typed and false, if it is untyped.
Definition: ChannelBuffer.h:677
virtual ChannelBufferBase::Slot * allocateSlot()
Creates and returns a new slot.
Definition: ChannelBuffer.h:957
XMLSerializer and XMLDeserializer.
std::size_t getMinSlots() const
Returns the size of the min number of slots.
virtual void writeSerializedValue(Slot *s, Buffer< uint8 > data)=0
Write the given buffer (that contains binary serialized data WITHOUT the StampedHeader) to the slot...
Prefer filling the interval with slots with timestamp > requested.
Definition: ChannelBuffer.h:114
void discardWriteSlot(Slot *n)
Discards written slot.
Prefer filling the interval with slots with timestamp < requested.
Definition: ChannelBuffer.h:112
void setAutoIncreaseStorageDuration(bool increase)
Sets whether the storage duration is automatically increased on read accesses.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW std::unique_ptr< ChannelBufferBase::Slot > clone() override
Definition: ChannelBuffer.h:913
uint32 flags
Used to store internal flags that are especially used by the remote capability of the framework...
Definition: ChannelBuffer.h:192
void deserializeFromNode(const char *name, T &value)
In contrast to the deserialize() method this method will use the node that was specified in the const...
Definition: XMLSerializer.h:362
IntervalFillMode
Mode that is used to determine what slots should be added to the interval when not enough slots are a...
Definition: ChannelBuffer.h:109
virtual const Buffer< uint8 > & readSerializedValue(ChannelBufferBase::Slot *s)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:710
void writeXML(ChannelBufferBase::Slot *s, const XMLDom::const_iterator &node) override
Writes data in xml representation into the slot, using a default-instantiated XMLDeserializer and the...
Definition: ChannelBuffer.h:867
virtual Buffer< uint8 > readSerializedValue(ChannelBufferBase::Slot *s, std::list< BinarySerializerCodecPtr > &codecs)
Returns a buffer containing the binary serialized data of the slot.
Definition: ChannelBuffer.h:760
virtual Typename getTypename() const =0
Returns the Typename of the slot values, in contrast to getTypeId() the Typename is portable and uniq...
SlotQueryMode
Mode that is used to determine the slot obtained from a channel when no slot exists at the exact time...
Definition: ChannelBuffer.h:93
virtual std::unique_ptr< Slot > clone()=0
json::Value JSONValue
Imports the json::Value type into mira namespace.
Definition: JSON.h:361
void clear()
Deletes all slots in all lists and therefore clears the whole buffer.
Provides method for generating a unique id for any type.
Duration getStorageDuration() const
Returns the storage duration.
Slot * prev
Definition: ChannelBuffer.h:158
virtual Typename getTypename() const
Returns the Typename of the slot values, in contrast to getTypeId() the Typename is portable and uniq...
Definition: ChannelBuffer.h:679
virtual void writeJSON(Slot *s, const JSONValue &value)=0
Writes data in json representation into the slot, using a default-instantiated JSONDeserializer.
void readInterval(const Time ×tamp, std::size_t nrSlots, std::size_t olderSlots, std::size_t newerSlots, IntervalFillMode fillMode, std::list< Slot *> &oSlots)
Reads an interval of slots.
ChannelBufferBase()
Constructor.
Definition: ChannelBuffer.h:210
Serializer and Deserializer for JSON format.
virtual void writeJSON(ChannelBufferBase::Slot *s, JSONDeserializer &deserializer)
Writes data from an initialized json deserializer into the slot.
Definition: ChannelBuffer.h:859
virtual int getTypeId() const =0
Returns typeid of the slot values, the allocator creates.
virtual bool isTyped() const =0
Returns true, if the channel is typed and false, if it is untyped.
The first slot with timestamp > requested will be chosen.
Definition: ChannelBuffer.h:99
std::map< TypeId, BinarySerializerCodecPtr > CodecsMap
A map of binary serialization codecs.
Definition: BinarySerializer.h:1259
boost::shared_ptr< BinarySerializerCodec > BinarySerializerCodecPtr
Shared pointer of BinarySerializerCodec.
Definition: BinarySerializerCodec.h:64
Deserializer for serializing objects from XML format.
Definition: XMLSerializer.h:314