OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <DataSampleElement.h>
Private Member Functions | |
DataSampleElement * | get_next_send_sample () const |
void | set_next_send_sample (DataSampleElement *next_send_sample) |
Private Attributes | |
ACE_UINT64 | transaction_id_ |
DataSampleHeader | header_ |
The OpenDDS DCPS header for this sample. More... | |
Message_Block_Ptr | sample_ |
GUID_t | publication_id_ |
Publication Id used downstream. More... | |
CORBA::ULong | num_subs_ |
OpenDDS::DCPS::GUID_t | subscription_ids_ [OpenDDS::DCPS::MAX_READERS_PER_ELEM] |
TransportSendListener * | send_listener_ |
PublicationInstance_rch | handle_ |
GUIDSeq_var | filter_out_ |
tracking for Content-Filtering data More... | |
DataLinkIdTypeGUIDMap | filter_per_link_ |
DataSampleElement * | previous_writer_sample_ |
Thread of all data within a DataWriter. More... | |
DataSampleElement * | next_writer_sample_ |
DataSampleElement * | next_instance_sample_ |
Thread of data within the instance. More... | |
DataSampleElement * | previous_instance_sample_ |
DataSampleElement * | next_send_sample_ |
Thread of data being unsent/sending/sent/released. More... | |
DataSampleElement * | previous_send_sample_ |
Friends | |
class | SendStateDataSampleList |
class | WriterDataSampleList |
class | InstanceDataSampleList |
class | TransportClient |
class | ::DDS_TEST |
class | SendStateDataSampleListIterator |
Iterators needs access to prev/next pointers for iteration. More... | |
class | SendStateDataSampleListConstIterator |
Wraps the marshaled message sample to be published, along with the publication Id and Instance handle for downstream processing.
Internally there are next/previous pointers that used for lists InstanceDataSampleList, SendStateDataSampleList, and WriterDataSampleList. These pointers are kept in this single element rather than having multiple smaller lists in order to allow us to allocate once which will minimize locking. Note that because the list pointers are stored within the element, the element can simultaneously be in at most one InstanceDataSampleList list, one SendStateDataSampleList list, and one WriterDataSampleList list.
Definition at line 54 of file DataSampleElement.h.
OpenDDS::DCPS::DataSampleElement::DataSampleElement | ( | GUID_t | publication_id, |
TransportSendListener * | send_listener, | ||
PublicationInstance_rch | handle | ||
) |
Definition at line 22 of file DataSampleElement.cpp.
References OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::DCPS::MAX_READERS_PER_ELEM, and subscription_ids_.
OpenDDS::DCPS::DataSampleElement::DataSampleElement | ( | const DataSampleElement & | elem | ) |
Definition at line 44 of file DataSampleElement.cpp.
References num_subs_, and subscription_ids_.
OpenDDS::DCPS::DataSampleElement::~DataSampleElement | ( | ) |
Definition at line 67 of file DataSampleElement.cpp.
ACE_INLINE DataSampleElement::DataLinkIdTypeGUIDMap & OpenDDS::DCPS::DataSampleElement::get_filter_per_link | ( | ) |
Definition at line 125 of file DataSampleElement.inl.
References ACE_INLINE, and filter_per_link_.
Referenced by OpenDDS::DCPS::DataLinkSet::send().
PublicationInstance_rch OpenDDS::DCPS::DataSampleElement::get_handle | ( | void | ) | const |
Definition at line 99 of file DataSampleElement.cpp.
References handle_, and OPENDDS_END_VERSIONED_NAMESPACE_DECL.
Referenced by OpenDDS::DCPS::WriteDataContainer::data_delivered().
ACE_INLINE const DataSampleHeader & OpenDDS::DCPS::DataSampleElement::get_header | ( | ) | const |
Definition at line 32 of file DataSampleElement.inl.
References ACE_INLINE, and header_.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::customize_queue_element_helper(), OpenDDS::DCPS::WriteDataContainer::data_delivered(), OpenDDS::DCPS::WriteDataContainer::data_dropped(), OpenDDS::DCPS::DataWriterImpl::dispose(), OpenDDS::DCPS::DataWriterImpl::dispose_and_unregister(), OpenDDS::DCPS::DataWriterImpl::filter_out(), get_header(), OpenDDS::DCPS::RtpsSampleHeader::populate_data_sample_submessages(), OpenDDS::DCPS::WriteDataContainer::reenqueue_all(), OpenDDS::DCPS::DataWriterImpl::register_instance_i(), OpenDDS::DCPS::WriteDataContainer::release_buffer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::remove_sample(), OpenDDS::DCPS::resend_data_expired(), OpenDDS::DCPS::DataDurabilityCache::sample_data_type::sample_data_type(), OpenDDS::DCPS::TransportClient::send_i(), OpenDDS::DCPS::DataWriterImpl::send_request_ack(), OpenDDS::RTPS::Sedp::Writer::send_sample(), OpenDDS::DCPS::TransportSendElement::sequence(), OpenDDS::DCPS::DataWriterImpl::unregister_instance_i(), OpenDDS::DCPS::ReplayerImpl::write(), and OpenDDS::DCPS::DataWriterImpl::write().
ACE_INLINE DataSampleHeader & OpenDDS::DCPS::DataSampleElement::get_header | ( | ) |
Definition at line 39 of file DataSampleElement.inl.
References ACE_INLINE, and get_header().
|
private |
Definition at line 18 of file DataSampleElement.inl.
References ACE_INLINE, and next_send_sample_.
Referenced by OpenDDS::DCPS::TransportClient::send_i().
ACE_INLINE CORBA::ULong OpenDDS::DCPS::DataSampleElement::get_num_subs | ( | ) | const |
Definition at line 75 of file DataSampleElement.inl.
References ACE_INLINE, and num_subs_.
Referenced by OpenDDS::DCPS::WriteDataContainer::data_delivered(), OpenDDS::DCPS::RtpsSampleHeader::populate_data_sample_submessages(), OpenDDS::DCPS::TransportClient::send_i(), and OpenDDS::DCPS::TransportSendElement::subscription_id().
ACE_INLINE GUID_t OpenDDS::DCPS::DataSampleElement::get_pub_id | ( | ) | const |
Definition at line 68 of file DataSampleElement.inl.
References ACE_INLINE, and publication_id_.
Referenced by OpenDDS::DCPS::ReplayerImpl::data_delivered(), OpenDDS::DCPS::DataWriterImpl::data_delivered(), OpenDDS::DCPS::RtpsSampleHeader::populate_data_sample_submessages(), OpenDDS::DCPS::TransportSendElement::publication_id(), OpenDDS::DCPS::TransportSendStrategy::remove_sample(), OpenDDS::DCPS::RtpsUdpDataLink::remove_sample(), and OpenDDS::DCPS::TransportClient::send_i().
ACE_INLINE DataSample * OpenDDS::DCPS::DataSampleElement::get_sample | ( | ) | const |
Definition at line 47 of file DataSampleElement.inl.
References ACE_INLINE, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), and sample_.
Referenced by OpenDDS::DCPS::WriteDataContainer::data_delivered(), OpenDDS::DCPS::TransportSendElement::duplicate_msg(), OpenDDS::DCPS::DataWriterImpl::filter_out(), OpenDDS::DCPS::DataDurabilityCache::insert(), OpenDDS::DCPS::TransportSendElement::msg(), OpenDDS::DCPS::TransportSendControlElement::msg(), OpenDDS::DCPS::TransportSendElement::msg_payload(), OpenDDS::DCPS::ThreadPerConnectionSendTask::remove_sample(), OpenDDS::DCPS::TransportSendStrategy::remove_sample(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::remove_sample(), OpenDDS::DCPS::DataDurabilityCache::sample_data_type::sample_data_type(), OpenDDS::DCPS::DataLinkSet::send(), and OpenDDS::RTPS::Sedp::Writer::send_sample().
ACE_INLINE DataSample * OpenDDS::DCPS::DataSampleElement::get_sample | ( | ) |
Definition at line 54 of file DataSampleElement.inl.
References ACE_INLINE, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), and sample_.
ACE_INLINE TransportSendListener * OpenDDS::DCPS::DataSampleElement::get_send_listener | ( | ) | const |
Definition at line 110 of file DataSampleElement.inl.
References ACE_INLINE, and send_listener_.
Referenced by OpenDDS::DCPS::RtpsSampleHeader::populate_data_sample_submessages(), OpenDDS::DCPS::TransportSendElement::release_element(), OpenDDS::DCPS::TransportSendControlElement::requires_exclusive_packet(), OpenDDS::DCPS::DataLinkSet::send(), and OpenDDS::DCPS::TransportClient::send_i().
ACE_INLINE TransportSendListener * OpenDDS::DCPS::DataSampleElement::get_send_listener | ( | ) |
Definition at line 117 of file DataSampleElement.inl.
References ACE_INLINE, and send_listener_.
ACE_INLINE OpenDDS::DCPS::GUID_t OpenDDS::DCPS::DataSampleElement::get_sub_id | ( | CORBA::ULong | index | ) | const |
Definition at line 96 of file DataSampleElement.inl.
References ACE_INLINE, and subscription_ids_.
Referenced by OpenDDS::DCPS::WriteDataContainer::data_delivered(), OpenDDS::DCPS::RtpsSampleHeader::populate_data_sample_submessages(), and OpenDDS::DCPS::TransportSendElement::subscription_id().
ACE_INLINE const OpenDDS::DCPS::GUID_t * OpenDDS::DCPS::DataSampleElement::get_sub_ids | ( | ) | const |
Definition at line 89 of file DataSampleElement.inl.
References ACE_INLINE, and subscription_ids_.
Referenced by OpenDDS::DCPS::TransportClient::send_i().
typedef OpenDDS::DCPS::DataSampleElement::OPENDDS_MAP | ( | DataLinkIdType | , |
GUIDSeq_var | |||
) |
DataSampleElement & OpenDDS::DCPS::DataSampleElement::operator= | ( | const DataSampleElement & | elem | ) |
Definition at line 72 of file DataSampleElement.cpp.
References ACE_Message_Block::duplicate(), filter_out_, filter_per_link_, handle_, header_, next_instance_sample_, next_send_sample_, next_writer_sample_, num_subs_, previous_instance_sample_, previous_send_sample_, previous_writer_sample_, publication_id_, OpenDDS::DCPS::unique_ptr< T, Deleter >::reset(), sample_, send_listener_, subscription_ids_, and transaction_id_.
ACE_INLINE void OpenDDS::DCPS::DataSampleElement::set_filter_out | ( | GUIDSeq * | filter_out | ) |
Definition at line 132 of file DataSampleElement.inl.
References ACE_INLINE, and filter_out_.
Referenced by OpenDDS::DCPS::DataWriterImpl::write().
|
private |
Definition at line 25 of file DataSampleElement.inl.
References ACE_INLINE, and next_send_sample_.
ACE_INLINE void OpenDDS::DCPS::DataSampleElement::set_num_subs | ( | CORBA::ULong | num_subs | ) |
Definition at line 82 of file DataSampleElement.inl.
References ACE_INLINE, and num_subs_.
Referenced by OpenDDS::DCPS::WriteDataContainer::copy_and_prepend(), OpenDDS::RTPS::Sedp::Writer::send_sample(), and OpenDDS::DCPS::ReplayerImpl::write().
ACE_INLINE void OpenDDS::DCPS::DataSampleElement::set_sample | ( | Message_Block_Ptr | sample | ) |
Definition at line 61 of file DataSampleElement.inl.
References ACE_INLINE, OpenDDS::DCPS::unique_ptr< T, Deleter >::release(), OpenDDS::DCPS::unique_ptr< T, Deleter >::reset(), and sample_.
Referenced by OpenDDS::DCPS::DataWriterImpl::dispose(), OpenDDS::DCPS::DataWriterImpl::dispose_and_unregister(), OpenDDS::DCPS::DataWriterImpl::register_instance_i(), OpenDDS::DCPS::DataWriterImpl::send_request_ack(), OpenDDS::RTPS::Sedp::Writer::send_sample(), OpenDDS::DCPS::DataWriterImpl::unregister_instance_i(), OpenDDS::DCPS::ReplayerImpl::write(), and OpenDDS::DCPS::DataWriterImpl::write().
ACE_INLINE void OpenDDS::DCPS::DataSampleElement::set_sub_id | ( | CORBA::ULong | index, |
OpenDDS::DCPS::GUID_t | id | ||
) |
Definition at line 103 of file DataSampleElement.inl.
References ACE_INLINE, and subscription_ids_.
Referenced by OpenDDS::DCPS::WriteDataContainer::copy_and_prepend(), OpenDDS::RTPS::Sedp::Writer::send_sample(), and OpenDDS::DCPS::ReplayerImpl::write().
ACE_INLINE void OpenDDS::DCPS::DataSampleElement::set_transaction_id | ( | ACE_UINT64 | transaction_id | ) |
Definition at line 139 of file DataSampleElement.inl.
References ACE_INLINE, transaction_id(), and transaction_id_.
Referenced by OpenDDS::DCPS::WriteDataContainer::get_unsent_data().
ACE_INLINE ACE_UINT64 OpenDDS::DCPS::DataSampleElement::transaction_id | ( | ) | const |
Definition at line 146 of file DataSampleElement.inl.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and transaction_id_.
Referenced by OpenDDS::DCPS::TransportClient::send_i(), and set_transaction_id().
|
friend |
Definition at line 144 of file DataSampleElement.h.
|
friend |
Definition at line 142 of file DataSampleElement.h.
|
friend |
*DataSampleList(s) is in charge of managing list placement therefore needs access to pointers
Definition at line 140 of file DataSampleElement.h.
|
friend |
Definition at line 147 of file DataSampleElement.h.
|
friend |
Iterators needs access to prev/next pointers for iteration.
Definition at line 146 of file DataSampleElement.h.
|
friend |
Definition at line 143 of file DataSampleElement.h.
|
friend |
Definition at line 141 of file DataSampleElement.h.
|
private |
tracking for Content-Filtering data
Definition at line 130 of file DataSampleElement.h.
Referenced by operator=(), OpenDDS::DCPS::TransportClient::send_i(), and set_filter_out().
|
private |
Definition at line 131 of file DataSampleElement.h.
Referenced by get_filter_per_link(), operator=(), and OpenDDS::DCPS::TransportClient::send_i().
|
private |
The pointer to the object that contains the instance information and data sample list. The client holds this as an InstanceHandle_t.
Definition at line 126 of file DataSampleElement.h.
Referenced by get_handle(), OpenDDS::DCPS::InstanceDataSampleList::on_some_list(), and operator=().
|
private |
The OpenDDS DCPS header for this sample.
Definition at line 105 of file DataSampleElement.h.
Referenced by get_header(), and operator=().
|
mutableprivate |
Thread of data within the instance.
Definition at line 158 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::InstanceDataSampleList::dequeue(), OpenDDS::DCPS::InstanceDataSampleList::dequeue_head(), OpenDDS::DCPS::InstanceDataSampleList::enqueue_tail(), OpenDDS::DCPS::InstanceDataSampleList::next(), OpenDDS::DCPS::InstanceDataSampleList::on_some_list(), and operator=().
|
mutableprivate |
Thread of data being unsent/sending/sent/released.
Definition at line 162 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::SendStateDataSampleList::dequeue(), OpenDDS::DCPS::SendStateDataSampleList::dequeue_head(), OpenDDS::DCPS::SendStateDataSampleList::enqueue_head(), OpenDDS::DCPS::SendStateDataSampleList::enqueue_tail(), get_next_send_sample(), OpenDDS::DCPS::SendStateDataSampleListIterator::operator++(), OpenDDS::DCPS::SendStateDataSampleListConstIterator::operator++(), operator=(), OpenDDS::DCPS::SendStateDataSampleList::remove(), and set_next_send_sample().
|
mutableprivate |
Definition at line 155 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::WriterDataSampleList::dequeue(), OpenDDS::DCPS::WriterDataSampleList::dequeue_head(), OpenDDS::DCPS::WriterDataSampleList::enqueue_tail(), and operator=().
|
private |
Definition at line 114 of file DataSampleElement.h.
Referenced by DataSampleElement(), get_num_subs(), operator=(), and set_num_subs().
|
mutableprivate |
Definition at line 159 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::InstanceDataSampleList::dequeue(), OpenDDS::DCPS::InstanceDataSampleList::dequeue_head(), OpenDDS::DCPS::InstanceDataSampleList::enqueue_tail(), OpenDDS::DCPS::InstanceDataSampleList::on_some_list(), operator=(), and OpenDDS::DCPS::InstanceDataSampleList::prev().
|
mutableprivate |
Definition at line 163 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::SendStateDataSampleList::dequeue(), OpenDDS::DCPS::SendStateDataSampleList::dequeue_head(), OpenDDS::DCPS::SendStateDataSampleList::enqueue_head(), OpenDDS::DCPS::SendStateDataSampleList::enqueue_tail(), OpenDDS::DCPS::SendStateDataSampleListIterator::operator--(), OpenDDS::DCPS::SendStateDataSampleListConstIterator::operator--(), operator=(), OpenDDS::DCPS::SendStateDataSampleList::remove(), and OpenDDS::DCPS::SendStateDataSampleList::send_list_containing_element().
|
mutableprivate |
Thread of all data within a DataWriter.
Used to make removal from the container much more efficient.
Definition at line 154 of file DataSampleElement.h.
Referenced by OpenDDS::DCPS::WriterDataSampleList::dequeue(), OpenDDS::DCPS::WriterDataSampleList::dequeue_head(), OpenDDS::DCPS::WriterDataSampleList::enqueue_tail(), and operator=().
|
private |
Publication Id used downstream.
Definition at line 112 of file DataSampleElement.h.
Referenced by get_pub_id(), and operator=().
|
private |
Message being sent which includes the DataSampleHeader message block and DataSample message block.
Definition at line 109 of file DataSampleElement.h.
Referenced by get_sample(), operator=(), and set_sample().
|
private |
Pointer to object that will be informed when the data has been delivered. This needs to be set prior to using the TransportClient to send().
Definition at line 121 of file DataSampleElement.h.
Referenced by get_send_listener(), and operator=().
|
private |
Definition at line 116 of file DataSampleElement.h.
Referenced by DataSampleElement(), get_sub_id(), get_sub_ids(), operator=(), and set_sub_id().
|
private |
Definition at line 102 of file DataSampleElement.h.
Referenced by operator=(), set_transaction_id(), and transaction_id().