MIRA
|
A special base class creating and keeping a copy of the channel slot instead of managing access and locking of the original slot. More...
#include <fw/ChannelReadWrite.h>
Public Types | |
typedef ChannelReadWriteTraits< DerivedContainer >::ChannelType | ChannelType |
typedef ChannelReadWriteTraits< DerivedContainer >::SlotType | Slot |
typedef ChannelReadWriteTraits< DerivedContainer >::ValueType | ValueType |
typedef ChannelType * | ChannelTypePtr |
Public Member Functions | |
ChannelReadCopy (ChannelTypePtr iChannel, ChannelBufferBase::Slot *iSlot) | |
Public Attributes | |
ChannelTypePtr | channel |
pointer to the channel our data/slot belongs to More... | |
std::unique_ptr< ChannelBufferBase::Slot > | slotHolder |
we are the unique owner of this slot copy More... | |
ChannelBufferBase::Slot * | slot |
MockLock | lock |
A special base class creating and keeping a copy of the channel slot instead of managing access and locking of the original slot.
Use of this base for read access will remove the potential for dead-locks between a channel writer and a channel multi-reader competing for the same slot. (see ticket #941) Obviously, this only makes sense if the slot data is cheap to copy.
typedef ChannelReadWriteTraits<DerivedContainer>::ChannelType ChannelType |
typedef ChannelReadWriteTraits<DerivedContainer>::SlotType Slot |
typedef ChannelReadWriteTraits<DerivedContainer>::ValueType ValueType |
typedef ChannelType* ChannelTypePtr |
|
inline |
ChannelTypePtr channel |
pointer to the channel our data/slot belongs to
std::unique_ptr<ChannelBufferBase::Slot> slotHolder |
we are the unique owner of this slot copy
ChannelBufferBase::Slot* slot |
MockLock lock |