OpenDDS
Snapshot(2023/04/28-20:55)
|
Implements the OpenDDS::DCPS::DataWriterRemote interfaces and DDS::DataWriter interfaces. More...
#include <DataWriterImpl.h>
Classes | |
struct | AckCustomization |
struct | AckToken |
class | EncodingMode |
struct | ReaderInfo |
Public Types | |
typedef Dynamic_Cached_Allocator_With_Overflow< ACE_Thread_Mutex > | DataAllocator |
![]() | |
typedef DDS::DataWriter ::_ptr_type | _ptr_type |
typedef DDS::DataWriter ::_var_type | _var_type |
![]() | |
typedef LocalObject_ptr | _ptr_type |
typedef LocalObject_var | _var_type |
typedef LocalObject_out | _out_type |
![]() | |
typedef Object_ptr | _ptr_type |
typedef Object_var | _var_type |
typedef Object_out | _out_type |
![]() | |
typedef DDS::Entity ::_ptr_type | _ptr_type |
typedef DDS::Entity ::_var_type | _var_type |
![]() | |
enum | { ASSOC_OK = 1, ASSOC_ACTIVE = 2 } |
Public Attributes | |
Atomic< int > | data_dropped_count_ |
Statistics counter. More... | |
Atomic< int > | data_delivered_count_ |
MessageTracker | controlTracker |
Friends | |
class | WriteDataContainer |
class | PublisherImpl |
class | ::DDS_TEST |
Additional Inherited Members | |
![]() | |
static _ptr_type | _narrow (CORBA::Object_ptr obj) |
![]() | |
static LocalObject_ptr | _duplicate (LocalObject_ptr obj) |
static LocalObject_ptr | _nil (void) |
static LocalObject_ptr | _narrow (CORBA::Object_ptr obj) |
![]() | |
static CORBA::Boolean | marshal (const Object_ptr x, TAO_OutputCDR &cdr) |
static void | _tao_any_destructor (void *) |
static CORBA::Boolean | is_nil_i (CORBA::Object_ptr obj) |
static void | tao_object_initialize (Object *) |
static CORBA::Object_ptr | _duplicate (CORBA::Object_ptr obj) |
static CORBA::Object_ptr | _nil (void) |
static CORBA::Object_ptr | _narrow (CORBA::Object_ptr obj) |
![]() | |
static _ptr_type | _narrow (CORBA::Object_ptr obj) |
Implements the OpenDDS::DCPS::DataWriterRemote interfaces and DDS::DataWriter interfaces.
See the DDS specification, OMG formal/2015-04-10, for a description of the interface this class is implementing.
This class must be inherited by the type-specific datawriter which is specific to the data-type associated with the topic.
Definition at line 80 of file DataWriterImpl.h.
typedef Dynamic_Cached_Allocator_With_Overflow<ACE_Thread_Mutex> OpenDDS::DCPS::DataWriterImpl::DataAllocator |
Definition at line 92 of file DataWriterImpl.h.
OpenDDS::DCPS::DataWriterImpl::DataWriterImpl | ( | ) |
Definition at line 58 of file DataWriterImpl.cpp.
References DDS::PublicationMatchedStatus::current_count, DDS::PublicationMatchedStatus::current_count_change, DDS::HANDLE_NIL, DDS::OfferedDeadlineMissedStatus::last_instance_handle, DDS::OfferedIncompatibleQosStatus::last_policy_id, DDS::PublicationMatchedStatus::last_subscription_handle, liveliness_lost_status_, monitor_, offered_deadline_missed_status_, offered_incompatible_qos_status_, periodic_monitor_, DDS::OfferedIncompatibleQosStatus::policies, publication_match_status_, TheServiceParticipant, DDS::LivelinessLostStatus::total_count, DDS::OfferedDeadlineMissedStatus::total_count, DDS::OfferedIncompatibleQosStatus::total_count, DDS::PublicationMatchedStatus::total_count, DDS::LivelinessLostStatus::total_count_change, DDS::OfferedDeadlineMissedStatus::total_count_change, DDS::OfferedIncompatibleQosStatus::total_count_change, and DDS::PublicationMatchedStatus::total_count_change.
|
virtual |
Definition at line 110 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, participant_servant_, and publication_id_.
|
virtual |
Implements OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 212 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, ACE_TEXT(), OpenDDS::DCPS::TransportClient::associate(), OpenDDS::DCPS::LogGuid::c_str(), check_and_set_repo_id(), DBG_ENTRY_LVL, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::AssociationData::discovery_locator_, DDS::DataReaderQos::durability, OpenDDS::DCPS::Observer::e_ASSOCIATED, OpenDDS::DCPS::ReaderAssociation::exprParams, OpenDDS::DCPS::ReaderAssociation::filterClassName, OpenDDS::DCPS::ReaderAssociation::filterExpression, OpenDDS::DCPS::EntityImpl::get_deleted(), get_guid(), OpenDDS::DCPS::EntityImpl::get_observer(), is_bit_, DDS::DurabilityQosPolicy::kind, DDS::ReliabilityQosPolicy::kind, LM_DEBUG, LM_ERROR, OpenDDS::DCPS::Observer::on_associated(), OpenDDS::DCPS::AssociationData::participant_discovered_at_, participant_servant_, OpenDDS::DCPS::ReaderAssociation::participantDiscoveredAt, qos_, reader_info_, reader_info_lock_, OpenDDS::DCPS::ReaderAssociation::readerDiscInfo, OpenDDS::DCPS::ReaderAssociation::readerId, OpenDDS::DCPS::ReaderAssociation::readerQos, OpenDDS::DCPS::ReaderAssociation::readerTransInfo, DDS::DataReaderQos::reliability, DDS::RELIABLE_RELIABILITY_QOS, OpenDDS::DCPS::AssociationData::remote_data_, OpenDDS::DCPS::AssociationData::remote_durable_, OpenDDS::DCPS::AssociationData::remote_id_, OpenDDS::DCPS::AssociationData::remote_reliable_, OpenDDS::DCPS::AssociationData::remote_transport_context_, TheServiceParticipant, DDS::DataWriterQos::transport_priority, OpenDDS::DCPS::ReaderAssociation::transportContext, DDS::TransportPriorityQosPolicy::value, and DDS::VOLATILE_DURABILITY_QOS.
|
virtual |
Implements DDS::DataWriter.
Definition at line 1190 of file DataWriterImpl.cpp.
References DDS::AUTOMATIC_LIVELINESS_QOS, DDS::LivelinessQosPolicy::kind, DDS::DataWriterQos::liveliness, DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS, OpenDDS::DCPS::TimePoint_T< MonotonicClock >::now(), participant_servant_, qos_, DDS::RETCODE_ERROR, DDS::RETCODE_OK, and send_liveliness().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::assert_liveliness_by_participant | ( | ) |
Definition at line 1215 of file DataWriterImpl.cpp.
References DDS::LivelinessQosPolicy::kind, DDS::DataWriterQos::liveliness, liveliness_asserted_, DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, qos_, and DDS::RETCODE_OK.
|
private |
Definition at line 370 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, ACE_TEXT(), available_data_list_, OpenDDS::DCPS::SendStateDataSampleList::begin(), OpenDDS::DCPS::bind(), controlTracker, create_control_message(), DDS::PublicationMatchedStatus::current_count, DDS::PublicationMatchedStatus::current_count_change, data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::STUN::encoding(), OpenDDS::DCPS::SendStateDataSampleList::end(), OpenDDS::DCPS::END_HISTORIC_SAMPLES, OpenDDS::DCPS::SendStateDataSampleList::enqueue_tail(), OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), get_db_lock(), get_lock(), get_max_sn(), get_resend_data(), header, id_to_handle_map_, OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::insert(), is_bit_, CORBA::is_nil(), OpenDDS::DCPS::Encoding::KIND_UNALIGNED_CDR, DDS::PublicationMatchedStatus::last_subscription_handle, DDS::DataWriterQos::lifespan, listener_for(), LM_DEBUG, LM_ERROR, LM_INFO, LM_WARNING, lock_, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::MessageTracker::message_dropped(), OpenDDS::DCPS::MessageTracker::message_sent(), monitor_, OpenDDS::DCPS::move(), OpenDDS::DCPS::EntityImpl::notify_status_condition(), OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), OPENDDS_STRING, participant_servant_, publication_id_, publication_match_status_, DDS::PUBLICATION_MATCHED_STATUS, publisher_servant_, qos_, reader_info_, reader_info_lock_, readers_, OpenDDS::DCPS::SEND_CONTROL_ERROR, OpenDDS::DCPS::TransportClient::send_w_control(), OpenDDS::DCPS::serialized_size(), OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), DDS::PublicationMatchedStatus::total_count, and DDS::PublicationMatchedStatus::total_count_change.
Referenced by transport_assoc_done().
void OpenDDS::DCPS::DataWriterImpl::begin_coherent_changes | ( | ) |
Starts a coherent change set; should only be called once.
Definition at line 2324 of file DataWriterImpl.cpp.
References ACE_GUARD, coherent_, and get_lock().
|
inlineprotected |
Definition at line 520 of file DataWriterImpl.h.
References OpenDDS::DCPS::GUID_UNKNOWN, and lock_.
Referenced by add_association().
|
virtual |
Implements OpenDDS::DCPS::TransportClient.
Definition at line 2303 of file DataWriterImpl.cpp.
void OpenDDS::DCPS::DataWriterImpl::cleanup | ( | void | ) |
cleanup the DataWriter.
Definition at line 126 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::NO_STATUS_MASK, set_listener(), topic_servant_, and type_support_.
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter().
bool OpenDDS::DCPS::DataWriterImpl::coherent_changes_pending | ( | ) |
Are coherent changes pending?
Definition at line 2313 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, coherent_, and get_lock().
|
virtual |
This is called by transport to notify that the control message is delivered.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2257 of file DataWriterImpl.cpp.
References controlTracker, DBG_ENTRY_LVL, and OpenDDS::DCPS::MessageTracker::message_delivered().
|
virtual |
This is called by transport to notify that the control message is dropped.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2403 of file DataWriterImpl.cpp.
References controlTracker, DBG_ENTRY_LVL, and OpenDDS::DCPS::MessageTracker::message_dropped().
DataWriterImpl::AckToken OpenDDS::DCPS::DataWriterImpl::create_ack_token | ( | DDS::Duration_t | max_wait | ) | const |
Create an AckToken for ack operations.
Definition at line 1025 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, get_max_sn(), OpenDDS::DCPS::SequenceNumber::getValue(), and LM_DEBUG.
Referenced by wait_for_acknowledgments().
|
private |
This method create a header message block and chain with the registered sample. The header contains the information needed. e.g. message id, length of whole message... The fast allocator is not used for the header.
Definition at line 2070 of file DataWriterImpl.cpp.
References ACE_CDR_BYTE_ORDER, ACE_DEBUG, ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, ACE_GUARD_RETURN, ACE_NEW_MALLOC_RETURN, ACE_TEXT(), OpenDDS::DCPS::DataSampleHeader::byte_order_, OpenDDS::DCPS::DataSampleHeader::coherent_change_, db_allocator_, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::DISPOSE_INSTANCE, OpenDDS::DCPS::DISPOSE_UNREGISTER_INSTANCE, get_db_lock(), OpenDDS::DCPS::DataSampleHeader::get_max_serialized_size(), get_next_sn_i(), OpenDDS::DCPS::INSTANCE_REGISTRATION, OpenDDS::DCPS::DataSampleHeader::key_fields_only_, LM_DEBUG, ACE_Time_Value::max_time, mb_allocator_, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::DataSampleHeader::message_id_, OpenDDS::DCPS::DataSampleHeader::message_length_, DDS::Time_t::nanosec, need_sequence_repair(), OpenDDS::DCPS::DataSampleHeader::publication_id_, publication_id_, OpenDDS::DCPS::DataSampleHeader::publisher_id_, publisher_servant_, reader_info_, reader_info_lock_, ACE_Guard< ACE_LOCK >::release(), OpenDDS::DCPS::unique_ptr< T, Deleter >::release(), OpenDDS::DCPS::REQUEST_ACK, DDS::Time_t::sec, OpenDDS::DCPS::DataSampleHeader::sequence_, sequence_number_, OpenDDS::DCPS::DataSampleHeader::sequence_repair_, OpenDDS::DCPS::SequenceNumber::SEQUENCENUMBER_UNKNOWN(), sn_lock_, OpenDDS::DCPS::DataSampleHeader::source_timestamp_nanosec_, OpenDDS::DCPS::DataSampleHeader::source_timestamp_sec_, OpenDDS::DCPS::TransportClient::swap_bytes(), OpenDDS::DCPS::to_string(), ACE_Message_Block::total_length(), OpenDDS::DCPS::UNREGISTER_INSTANCE, and ACE_Time_Value::zero.
Referenced by association_complete_i(), dispose(), dispose_and_unregister(), end_coherent_changes(), register_instance_i(), replay_durable_data_for(), send_liveliness(), send_request_ack(), and unregister_instance_i().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::create_sample_data_message | ( | Message_Block_Ptr | data, |
DDS::InstanceHandle_t | instance_handle, | ||
DataSampleHeader & | header_data, | ||
Message_Block_Ptr & | message, | ||
const DDS::Time_t & | source_timestamp, | ||
bool | content_filter | ||
) |
This method create a header message block and chain with the sample data. The header contains the information needed. e.g. message id, length of whole message... The fast allocator is used to allocate the message block, data block and header.
Definition at line 2153 of file DataWriterImpl.cpp.
References ACE_CDR_BYTE_ORDER, ACE_DEBUG, ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, ACE_ERROR_RETURN, ACE_NEW_MALLOC_RETURN, ACE_TEXT(), OpenDDS::DCPS::DataSampleHeader::byte_order_, OpenDDS::DCPS::TransportClient::cdr_encapsulation(), OpenDDS::DCPS::DataSampleHeader::cdr_encapsulation_, coherent_, OpenDDS::DCPS::DataSampleHeader::coherent_change_, OpenDDS::DCPS::DataSampleHeader::content_filter_, data_container_, db_allocator_, OpenDDS::DCPS::DCPS_debug_level, DDS::LifespanQosPolicy::duration, DDS::DURATION_INFINITE_NSEC, DDS::DURATION_INFINITE_SEC, get_db_lock(), OpenDDS::DCPS::DataSampleHeader::get_max_serialized_size(), get_next_sn_i(), OpenDDS::DCPS::DataSampleHeader::group_coherent_, DDS::GROUP_PRESENTATION_QOS, header_allocator_, DDS::DataWriterQos::lifespan, OpenDDS::DCPS::DataSampleHeader::lifespan_duration_, OpenDDS::DCPS::DataSampleHeader::lifespan_duration_nanosec_, OpenDDS::DCPS::DataSampleHeader::lifespan_duration_sec_, LM_DEBUG, LM_ERROR, ACE_Time_Value::max_time, mb_allocator_, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::DataSampleHeader::message_id_, OpenDDS::DCPS::DataSampleHeader::message_length_, DDS::Duration_t::nanosec, DDS::Time_t::nanosec, need_sequence_repair(), OpenDDS::DCPS::DataSampleHeader::publication_id_, publication_id_, OpenDDS::DCPS::DataSampleHeader::publisher_id_, publisher_servant_, qos_, OpenDDS::DCPS::unique_ptr< T, Deleter >::release(), OpenDDS::DCPS::unique_ptr< T, Deleter >::reset(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::SAMPLE_DATA, DDS::Duration_t::sec, DDS::Time_t::sec, OpenDDS::DCPS::DataSampleHeader::sequence_, OpenDDS::DCPS::DataSampleHeader::sequence_repair_, sn_lock_, OpenDDS::DCPS::DataSampleHeader::source_timestamp_nanosec_, OpenDDS::DCPS::DataSampleHeader::source_timestamp_sec_, OpenDDS::DCPS::TransportClient::swap_bytes(), OpenDDS::DCPS::to_string(), ACE_Message_Block::total_length(), and ACE_Time_Value::zero.
Referenced by write().
|
inline |
Definition at line 134 of file DataWriterImpl.h.
References dispose(), init(), OpenDDS::DCPS::OPENDDS_VECTOR(), and write().
|
virtual |
This is called by transport to notify that the sample is delivered and it is delegated to WriteDataContainer to adjust the internal data sample threads.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2237 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), data_container_, data_delivered_count_, DBG_ENTRY_LVL, OpenDDS::DCPS::DataSampleElement::get_pub_id(), LM_ERROR, and publication_id_.
|
virtual |
This mothod is called by transport to notify the instance sample is dropped and it delegates to WriteDataContainer to update the internal list.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2391 of file DataWriterImpl.cpp.
References data_container_, data_dropped_count_, and DBG_ENTRY_LVL.
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::dispose | ( | DDS::InstanceHandle_t | handle, |
const DDS::Time_t & | source_timestamp | ||
) |
Delegate to the WriteDataContainer to dispose all data samples for a given instance and tell the transport to broadcast the disposed instance.
Definition at line 1983 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), create_control_message(), data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::DISPOSE_INSTANCE, OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::DataSampleElement::get_header(), get_lock(), LM_ERROR, OpenDDS::DCPS::move(), DDS::RETCODE_ERROR, DDS::RETCODE_NOT_ENABLED, DDS::RETCODE_OK, send_all_to_flush_control(), and OpenDDS::DCPS::DataSampleElement::set_sample().
Referenced by dispose_w_timestamp().
|
private |
Definition at line 1750 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), create_control_message(), data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::DISPOSE_UNREGISTER_INSTANCE, OpenDDS::DCPS::DataSampleElement::get_header(), get_lock(), LM_ERROR, OpenDDS::DCPS::move(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, send_all_to_flush_control(), and OpenDDS::DCPS::DataSampleElement::set_sample().
Referenced by unregister_instance_i().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::dispose_w_timestamp | ( | const Sample & | sample, |
DDS::InstanceHandle_t | instance_handle, | ||
const DDS::Time_t & | source_timestamp | ||
) |
Definition at line 2942 of file DataWriterImpl.cpp.
References ACE_ERROR, DDS::Security::SecurityException::code, dispose(), dynamic_type_, OpenDDS::DCPS::Sample::get_dynamic_data(), DDS::HANDLE_NIL, instance_must_exist(), LM_NOTICE, OpenDDS::DCPS::log_level, DDS::Security::SecurityException::message, DDS::Security::SecurityException::minor_code, OpenDDS::DCPS::LogLevel::Notice, participant_permissions_handle_, DDS::Security::RETCODE_NOT_ALLOWED_BY_SECURITY, DDS::RETCODE_OK, and security_config_.
Referenced by OpenDDS::XTypes::DynamicDataWriterImpl::dispose_w_timestamp(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::dispose_w_timestamp().
|
inlineprivatevirtual |
Implements OpenDDS::DCPS::TransportClient.
Definition at line 716 of file DataWriterImpl.h.
Referenced by transport_discovery_change().
|
virtual |
Implements DDS::Entity.
Definition at line 1314 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::TypeSupportImpl::add_types(), association_chunk_multiplier_, OpenDDS::DCPS::TransportClient::cdr_encapsulation(), OpenDDS::DCPS::TransportClient::connection_info(), data_container_, db_allocator_, OpenDDS::DCPS::DCPS_debug_level, DDS::DataWriterQos::deadline, DDS::HistoryQosPolicy::depth, domain_id_, dp_id_, DDS::DataWriterQos::durability, DDS::DataWriterQos::durability_service, DDS::DURATION_INFINITE_NSEC, DDS::DURATION_INFINITE_SEC, dynamic_type_, OpenDDS::DCPS::Observer::e_ENABLED, OpenDDS::DCPS::TransportClient::enable_transport(), OpenDDS::DCPS::EntityImpl::get_observer(), OpenDDS::DCPS::TypeSupportImpl::get_type(), get_type_name(), OpenDDS::DCPS::GUID_UNKNOWN, header_allocator_, DDS::DataWriterQos::history, if(), TAO::String_var< charT >::in(), OpenDDS::DCPS::EntityImpl::is_enabled(), DDS::KEEP_ALL_HISTORY_QOS, DDS::DurabilityQosPolicy::kind, DDS::ReliabilityQosPolicy::kind, DDS::HistoryQosPolicy::kind, last_deadline_missed_total_count_, DDS::LivelinessQosPolicy::lease_duration, DDS::LENGTH_UNLIMITED, DDS::DataWriterQos::lifespan, DDS::DataWriterQos::liveliness, liveliness_check_interval_, liveness_timer_, LM_DEBUG, LM_ERROR, LM_WARNING, lock_, DDS::ReliabilityQosPolicy::max_blocking_time, DDS::ResourceLimitsQosPolicy::max_instances, DDS::ResourceLimitsQosPolicy::max_samples, DDS::ResourceLimitsQosPolicy::max_samples_per_instance, mb_allocator_, monitor_, n_chunks_, DDS::Duration_t::nanosec, offered_deadline_missed_status_, OpenDDS::DCPS::Observer::on_enabled(), participant_permissions_handle_, participant_servant_, DDS::DeadlineQosPolicy::period, publication_id_, publisher_servant_, qos_, OpenDDS::DCPS::rchandle_from(), reactor_, ACE_Guard< ACE_LOCK >::release(), DDS::DataWriterQos::reliability, DDS::RELIABLE_RELIABILITY_QOS, DDS::DataWriterQos::representation, DDS::DataWriterQos::resource_limits, DDS::RETCODE_ERROR, DDS::RETCODE_OK, DDS::RETCODE_PRECONDITION_NOT_MET, ACE_Reactor_Timer_Interface::schedule_timer(), DDS::Duration_t::sec, security_config_, OpenDDS::DCPS::EntityImpl::set_enabled(), OpenDDS::DCPS::set_writer_effective_data_rep_qos(), setup_serialization(), TheServiceParticipant, OpenDDS::DCPS::TypeSupportImpl::to_type_info(), topic_name_, topic_servant_, type_support_, OpenDDS::DCPS::TimeDuration::value(), DDS::DataRepresentationQosPolicy::value, DDS::VOLATILE_DURABILITY_QOS, and WriteDataContainer.
Referenced by OpenDDS::DCPS::PublisherImpl::create_datawriter().
void OpenDDS::DCPS::DataWriterImpl::end_coherent_changes | ( | const GroupCoherentSamples & | group_samples | ) |
Ends a coherent change set; should only be called once.
Definition at line 2334 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_GUARD, ACE_TEXT(), coherent_, OpenDDS::DCPS::CoherentChangeControl::coherent_samples_, coherent_samples_, create_control_message(), OpenDDS::DCPS::END_COHERENT_CHANGES, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), get_db_lock(), get_lock(), OpenDDS::DCPS::CoherentChangeControl::get_max_serialized_size(), get_max_sn(), OpenDDS::DCPS::CoherentChangeControl::group_coherent_, OpenDDS::DCPS::CoherentChangeControl::group_coherent_samples_, DDS::GROUP_PRESENTATION_QOS, header, OpenDDS::DCPS::Encoding::KIND_UNALIGNED_CDR, OpenDDS::DCPS::WriterCoherentSample::last_sample_, LM_ERROR, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::move(), OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), OpenDDS::DCPS::WriterCoherentSample::num_samples_, OpenDDS::DCPS::CoherentChangeControl::publisher_id_, publisher_servant_, send_control(), OpenDDS::DCPS::SEND_CONTROL_ERROR, and OpenDDS::DCPS::TransportClient::swap_bytes().
bool OpenDDS::DCPS::DataWriterImpl::filter_out | ( | const DataSampleElement & | elt, |
const OPENDDS_STRING & | filterClassName, | ||
const FilterEvaluator & | evaluator, | ||
const DDS::StringSeq & | expression_params | ||
) | const |
Definition at line 2271 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_Message_Block::cont(), OpenDDS::DCPS::DataWriterImpl::EncodingMode::encoding(), encoding_mode_, OpenDDS::DCPS::LogLevel::Error, OpenDDS::DCPS::FilterEvaluator::eval(), OpenDDS::DCPS::DataSampleElement::get_header(), OpenDDS::DCPS::DataSampleElement::get_sample(), OpenDDS::DCPS::FilterEvaluator::has_non_key_fields(), LM_ERROR, OpenDDS::DCPS::log_level, type_support_, and OpenDDS::DCPS::DataSampleHeader::valid_data().
Referenced by OpenDDS::DCPS::WriteDataContainer::copy_and_prepend(), and write_w_timestamp().
|
private |
Definition at line 3068 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::RcHandle< T >::_retn(), and instance_values_to_handles_.
Referenced by instance_must_exist(), and lookup_instance().
|
privatevirtual |
Reimplemented from OpenDDS::DCPS::TransportClient.
Definition at line 201 of file DataWriterImpl.cpp.
References participant_servant_.
|
privatevirtual |
Reimplemented from OpenDDS::DCPS::TransportClient.
Definition at line 2739 of file DataWriterImpl.cpp.
References DDS::HANDLE_NIL, and participant_servant_.
|
inline |
Definition at line 475 of file DataWriterImpl.h.
Referenced by association_complete_i(), create_control_message(), create_sample_data_message(), end_coherent_changes(), OpenDDS::DCPS::DataDurabilityCache::get_data(), replay_durable_data_for(), and serialize_sample().
GUID_t OpenDDS::DCPS::DataWriterImpl::get_dp_id | ( | ) |
Accessor of the repository id of the domain participant.
Definition at line 2058 of file DataWriterImpl.cpp.
References dp_id_.
Referenced by OpenDDS::DCPS::DWMonitorImpl::report().
|
protected |
Definition at line 1003 of file DataWriterImpl.cpp.
References listener_, and listener_mutex_.
Referenced by notify_publication_disconnected(), notify_publication_lost(), and notify_publication_reconnected().
|
inlinevirtual |
Implements OpenDDS::DCPS::TransportClient.
Definition at line 488 of file DataWriterImpl.h.
References lock_.
Referenced by add_association(), OpenDDS::DCPS::PublisherImpl::delete_datawriter(), OpenDDS::Federator::ManagerImpl::initialize(), OpenDDS::DCPS::DWPeriodicMonitorImpl::report(), and OpenDDS::DCPS::DWMonitorImpl::report().
PublicationInstance_rch OpenDDS::DCPS::DataWriterImpl::get_handle_instance | ( | DDS::InstanceHandle_t | handle | ) |
Attempt to locate an existing instance for the given handle.
Definition at line 2562 of file DataWriterImpl.cpp.
References data_container_.
Referenced by get_or_create_instance_handle().
|
virtual |
Implements OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 2782 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::TransportClient::get_ice_endpoint().
|
virtual |
Implements OpenDDS::DCPS::EntityImpl.
Definition at line 176 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::EntityImpl::get_entity_instance_handle(), participant_servant_, and publication_id_.
void OpenDDS::DCPS::DataWriterImpl::get_instance_handles | ( | InstanceHandleVec & | instance_handles | ) |
Definition at line 2715 of file DataWriterImpl.cpp.
References data_container_.
Referenced by OpenDDS::DCPS::DWMonitorImpl::report().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_key_value | ( | Sample_rch & | sample, |
DDS::InstanceHandle_t | handle | ||
) |
Definition at line 2898 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, get_lock(), instance_handles_to_values_, OpenDDS::DCPS::Sample::Mutable, DDS::RETCODE_BAD_PARAMETER, DDS::RETCODE_ERROR, and DDS::RETCODE_OK.
Referenced by OpenDDS::XTypes::DynamicDataWriterImpl::get_key_value(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::get_key_value().
|
virtual |
Implements DDS::DataWriter.
Definition at line 996 of file DataWriterImpl.cpp.
References listener_, and listener_mutex_.
|
virtual |
Definition at line 1121 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, DDS::LIVELINESS_LOST_STATUS, liveliness_lost_status_, lock_, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), and DDS::LivelinessLostStatus::total_count_change.
|
inline |
Accessor of the WriterDataContainer's lock.
Definition at line 382 of file DataWriterImpl.h.
References ACE_Recursive_Thread_Mutex::lock_.
Referenced by association_complete_i(), begin_coherent_changes(), coherent_changes_pending(), dispose(), dispose_and_unregister(), end_coherent_changes(), get_key_value(), get_or_create_instance_handle(), instance_must_exist(), lookup_instance(), register_instance_from_durable_data(), replay_durable_data_for(), send_request_ack(), unregister_instance_i(), and write().
|
inline |
Definition at line 129 of file DataWriterImpl.h.
|
virtual |
Definition at line 1281 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), OpenDDS::DCPS::BUILT_IN_SUBSCRIPTION_TOPIC, OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::RcHandle< T >::in(), LM_ERROR, participant_servant_, DDS::RETCODE_ERROR, DDS::RETCODE_NOT_ENABLED, and DDS::RETCODE_OK.
|
virtual |
Definition at line 1248 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), OpenDDS::DCPS::EntityImpl::enabled_, id_to_handle_map_, LM_ERROR, lock_, DDS::RETCODE_ERROR, DDS::RETCODE_NOT_ENABLED, and DDS::RETCODE_OK.
|
inlinevirtual |
Reimplemented from OpenDDS::DCPS::TransportClient.
Definition at line 494 of file DataWriterImpl.h.
Referenced by association_complete_i(), create_ack_token(), end_coherent_changes(), and track_sequence_number().
DDS::InstanceHandle_t OpenDDS::DCPS::DataWriterImpl::get_next_handle | ( | ) |
Get an instance handle for a new instance.
Definition at line 183 of file DataWriterImpl.cpp.
References DDS::HANDLE_NIL, and participant_servant_.
Referenced by OpenDDS::DCPS::WriteDataContainer::register_instance().
|
inlineprotected |
Definition at line 528 of file DataWriterImpl.h.
|
inlineprotected |
Definition at line 534 of file DataWriterImpl.h.
References OpenDDS::DCPS::SequenceNumber::SEQUENCENUMBER_UNKNOWN().
Referenced by create_control_message(), and create_sample_data_message().
|
virtual |
Definition at line 1135 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, last_deadline_missed_total_count_, lock_, DDS::OFFERED_DEADLINE_MISSED_STATUS, offered_deadline_missed_status_, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), DDS::OfferedDeadlineMissedStatus::total_count, and DDS::OfferedDeadlineMissedStatus::total_count_change.
|
virtual |
Definition at line 1161 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, lock_, DDS::OFFERED_INCOMPATIBLE_QOS_STATUS, offered_incompatible_qos_status_, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), and DDS::OfferedIncompatibleQosStatus::total_count_change.
|
protected |
Definition at line 3076 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_GUARD_RETURN, DDS::Security::SecurityException::code, OpenDDS::DCPS::Sample::copy(), OpenDDS::XTypes::copy(), dynamic_type_, get_handle_instance(), get_lock(), get_type_support(), DDS::HANDLE_NIL, insert_instance(), OpenDDS::DCPS::Sample::KeyOnly, LM_NOTICE, OpenDDS::DCPS::log_level, lookup_instance(), DDS::Security::SecurityException::message, DDS::Security::SecurityException::minor_code, OpenDDS::DCPS::move(), OpenDDS::DCPS::TypeSupportImpl::name(), OpenDDS::DCPS::LogLevel::Notice, participant_permissions_handle_, OpenDDS::DCPS::Sample::ReadOnly, register_instance_i(), DDS::RETCODE_ERROR, DDS::Security::RETCODE_NOT_ALLOWED_BY_SECURITY, DDS::RETCODE_OK, security_config_, send_all_to_flush_control(), and serialize_sample().
Referenced by register_instance_w_timestamp(), and write_w_timestamp().
|
inlineprivatevirtual |
Implements OpenDDS::DCPS::TransportClient.
Definition at line 721 of file DataWriterImpl.h.
References DDS::DataWriterQos::transport_priority, and DDS::TransportPriorityQosPolicy::value.
|
virtual |
Definition at line 1175 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, DDS::PublicationMatchedStatus::current_count_change, lock_, publication_match_status_, DDS::PUBLICATION_MATCHED_STATUS, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), and DDS::PublicationMatchedStatus::total_count_change.
|
virtual |
Implements DDS::DataWriter.
Definition at line 1115 of file DataWriterImpl.cpp.
References publisher_servant_.
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter(), OpenDDS::DCPS::StaticDiscovery::pre_writer(), and OpenDDS::DCPS::DWMonitorImpl::report().
|
virtual |
Definition at line 978 of file DataWriterImpl.cpp.
References passed_qos_, and DDS::RETCODE_OK.
Referenced by OpenDDS::DCPS::StaticDiscovery::pre_writer().
void OpenDDS::DCPS::DataWriterImpl::get_readers | ( | RepoIdSet & | readers | ) |
Definition at line 2721 of file DataWriterImpl.cpp.
References ACE_GUARD, lock_, and readers_.
Referenced by OpenDDS::DCPS::DWMonitorImpl::report().
|
inline |
Definition at line 306 of file DataWriterImpl.h.
Referenced by association_complete_i(), and replay_durable_data_for().
|
virtual |
Implements DDS::DataWriter.
Definition at line 1010 of file DataWriterImpl.cpp.
References topic_servant_.
Referenced by OpenDDS::DCPS::DWMonitorImpl::report().
char const * OpenDDS::DCPS::DataWriterImpl::get_type_name | ( | ) | const |
Get associated topic type name.
Definition at line 2064 of file DataWriterImpl.cpp.
References TAO::String_var< charT >::in(), and type_name_.
Referenced by enable().
|
inlineprotected |
Definition at line 665 of file DataWriterImpl.h.
References write_w_timestamp().
Referenced by get_or_create_instance_handle(), and write_w_timestamp().
|
inline |
Retrieve the unsent data from the WriteDataContainer.
Definition at line 301 of file DataWriterImpl.h.
Referenced by send_all_to_flush_control(), and write().
|
inline |
Definition at line 500 of file DataWriterImpl.h.
References dispose_w_timestamp(), get_key_value(), lookup_instance(), register_instance_w_timestamp(), timestamp(), and unregister_instance_w_timestamp().
Referenced by write().
|
virtual |
Handle the assert liveliness timeout.
Definition at line 2431 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_TEXT(), DDS::AUTOMATIC_LIVELINESS_QOS, ACE_Reactor_Timer_Interface::cancel_timer(), CORBA::is_nil(), DDS::LivelinessQosPolicy::kind, last_liveliness_activity_time_, DDS::LivelinessQosPolicy::lease_duration, listener_for(), DDS::DataWriterQos::liveliness, liveliness_asserted_, liveliness_check_interval_, liveliness_lost_, DDS::LIVELINESS_LOST_STATUS, liveliness_lost_status_, liveness_timer_, LM_ERROR, lock_, DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS, qos_, reactor_, ACE_Reactor_Timer_Interface::schedule_timer(), send_liveliness(), TheServiceParticipant, DDS::LivelinessLostStatus::total_count, DDS::LivelinessLostStatus::total_count_change, value, and OpenDDS::DCPS::TimeDuration::value().
void OpenDDS::DCPS::DataWriterImpl::init | ( | TopicImpl * | topic_servant, |
const DDS::DataWriterQos & | qos, | ||
DDS::DataWriterListener_ptr | a_listener, | ||
const DDS::StatusMask & | mask, | ||
WeakRcHandle< DomainParticipantImpl > | participant_servant, | ||
PublisherImpl * | publisher_servant | ||
) |
Initialize the data members.
Definition at line 137 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, domain_id_, OpenDDS::DCPS::TopicDescriptionImpl::get_type_support(), TAO::String_var< charT >::in(), is_bit_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), participant_servant_, passed_qos_, publisher_servant_, qos_, reactor_, set_listener(), TheServiceParticipant, topic_id_, topic_name_, topic_servant_, OpenDDS::DCPS::topicIsBIT(), type_name_, and type_support_.
Referenced by OpenDDS::DCPS::PublisherImpl::create_datawriter().
|
private |
Definition at line 3052 of file DataWriterImpl.cpp.
References instance_handles_to_values_, instance_values_to_handles_, and OPENDDS_ASSERT.
Referenced by get_or_create_instance_handle().
|
protected |
Definition at line 3136 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_GUARD_RETURN, find_instance(), get_lock(), DDS::HANDLE_NIL, instance_handles_to_values_, instance_values_to_handles_, OpenDDS::DCPS::Sample::key_only(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, OPENDDS_ASSERT, DDS::RETCODE_ERROR, DDS::RETCODE_OK, and DDS::RETCODE_PRECONDITION_NOT_MET.
Referenced by dispose_w_timestamp(), and unregister_instance_w_timestamp().
DDS::DataWriterListener_ptr OpenDDS::DCPS::DataWriterImpl::listener_for | ( | DDS::StatusKind | kind | ) |
This is used to retrieve the listener for a certain status change.
If this datawriter has a registered listener and the status kind is in the listener mask then the listener is returned. Otherwise, the query for the listener is propagated up to the factory/publisher.
Definition at line 2411 of file DataWriterImpl.cpp.
References CORBA::is_nil(), listener_, listener_mask_, listener_mutex_, publisher_servant_, and ACE_Guard< ACE_LOCK >::release().
Referenced by association_complete_i(), handle_timeout(), OpenDDS::DCPS::WriteDataContainer::process_deadlines(), remove_associations(), and update_incompatible_qos().
TimeDuration OpenDDS::DCPS::DataWriterImpl::liveliness_check_interval | ( | DDS::LivelinessQosPolicyKind | kind | ) |
Definition at line 1227 of file DataWriterImpl.cpp.
References DDS::LivelinessQosPolicy::kind, DDS::DataWriterQos::liveliness, liveliness_check_interval_, OpenDDS::DCPS::TimeDuration::max_value, and qos_.
Referenced by OpenDDS::DCPS::DomainParticipantImpl::LivelinessTimer::add_adjust().
DDS::InstanceHandle_t OpenDDS::DCPS::DataWriterImpl::lookup_instance | ( | const Sample & | sample | ) |
Definition at line 2909 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, find_instance(), get_lock(), DDS::HANDLE_NIL, instance_values_to_handles_, and DDS::RETCODE_ERROR.
Referenced by get_or_create_instance_handle(), OpenDDS::XTypes::DynamicDataWriterImpl::lookup_instance(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::lookup_instance().
|
private |
Lookup the instance handles by the subscription repo ids.
Definition at line 2667 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), OpenDDS::DCPS::LogGuid::conv_, OpenDDS::DCPS::DCPS_debug_level, LM_DEBUG, OPENDDS_STRING, and participant_servant_.
Referenced by notify_publication_disconnected(), notify_publication_lost(), notify_publication_reconnected(), and remove_associations().
|
private |
Definition at line 2747 of file DataWriterImpl.cpp.
References ACE_GUARD_RETURN, need_sequence_repair_i(), and reader_info_lock_.
Referenced by create_control_message(), and create_sample_data_message().
|
private |
Definition at line 2754 of file DataWriterImpl.cpp.
References reader_info_, and sequence_number_.
Referenced by need_sequence_repair().
|
virtual |
Implements OpenDDS::DCPS::TransportSendListener.
Definition at line 2573 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, get_ext_listener(), is_bit_, CORBA::is_nil(), lookup_instance_handles(), and OpenDDS::DCPS::PublicationLostStatus::subscription_handles.
|
virtual |
Implements OpenDDS::DCPS::TransportSendListener.
Definition at line 2617 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, get_ext_listener(), is_bit_, CORBA::is_nil(), lookup_instance_handles(), and OpenDDS::DCPS::PublicationLostStatus::subscription_handles.
Referenced by remove_associations().
|
private |
Definition at line 2640 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, get_ext_listener(), is_bit_, CORBA::is_nil(), and OpenDDS::DCPS::PublicationLostStatus::subscription_handles.
|
virtual |
Implements OpenDDS::DCPS::TransportSendListener.
Definition at line 2595 of file DataWriterImpl.cpp.
References DBG_ENTRY_LVL, get_ext_listener(), is_bit_, CORBA::is_nil(), lookup_instance_handles(), and OpenDDS::DCPS::PublicationLostStatus::subscription_handles.
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::num_samples | ( | DDS::InstanceHandle_t | handle, |
size_t & | size | ||
) |
Return the number of samples for a given instance.
Definition at line 2045 of file DataWriterImpl.cpp.
References data_container_.
|
private |
typedef OpenDDS::DCPS::DataWriterImpl::OPENDDS_MAP_CMP | ( | GUID_t | , |
SequenceNumber | , | ||
GUID_tKeyLessThan | |||
) |
|
protected |
|
private |
|
private |
typedef OpenDDS::DCPS::DataWriterImpl::OPENDDS_VECTOR | ( | DDS::InstanceHandle_t | ) |
|
virtual |
Reimplemented from OpenDDS::DCPS::EntityImpl.
Definition at line 2264 of file DataWriterImpl.cpp.
References publisher_servant_.
bool OpenDDS::DCPS::DataWriterImpl::participant_liveliness_activity_after | ( | const MonotonicTimePoint & | tv | ) |
Definition at line 1237 of file DataWriterImpl.cpp.
References DDS::LivelinessQosPolicy::kind, last_liveliness_activity_time_, DDS::DataWriterQos::liveliness, lock_, DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, and qos_.
bool OpenDDS::DCPS::DataWriterImpl::persist_data | ( | ) |
Make sent data available beyond the lifetime of this DataWriter
.
Definition at line 2700 of file DataWriterImpl.cpp.
References data_container_.
Referenced by prepare_to_delete().
|
protected |
Definition at line 2536 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::Observer::e_DELETED, OpenDDS::DCPS::EntityImpl::get_observer(), LM_ERROR, OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), OpenDDS::DCPS::Observer::on_deleted(), persist_data(), OpenDDS::DCPS::EntityImpl::set_deleted(), OpenDDS::DCPS::TransportClient::stop_associating(), OpenDDS::DCPS::TransportClient::terminate_send_if_suspended(), and unregister_instances().
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter(), and OpenDDS::DCPS::PublisherImpl::prepare_to_delete_datawriters().
|
virtual |
Reimplemented from OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 822 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::TransportClient::register_for_reader().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::register_instance_from_durable_data | ( | DDS::InstanceHandle_t & | handle, |
Message_Block_Ptr | data, | ||
const DDS::Time_t & | source_timestamp | ||
) |
Delegate to the WriteDataContainer to register and tell the transport to broadcast the registered instance.
Definition at line 1658 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), DBG_ENTRY_LVL, get_lock(), LM_ERROR, OpenDDS::DCPS::move(), register_instance_i(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::retcode_to_string(), and send_all_to_flush_control().
Referenced by OpenDDS::DCPS::DataDurabilityCache::get_data().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::register_instance_i | ( | DDS::InstanceHandle_t & | handle, |
Message_Block_Ptr | data, | ||
const DDS::Time_t & | source_timestamp | ||
) |
Delegate to the WriteDataContainer to register Must tell the transport to broadcast the registered instance upon returning.
Definition at line 1594 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), create_control_message(), data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::DataSampleElement::get_header(), OpenDDS::DCPS::INSTANCE_REGISTRATION, LM_ERROR, monitor_, OpenDDS::DCPS::move(), DDS::RETCODE_NOT_ENABLED, DDS::RETCODE_OK, OpenDDS::DCPS::retcode_to_string(), and OpenDDS::DCPS::DataSampleElement::set_sample().
Referenced by get_or_create_instance_handle(), and register_instance_from_durable_data().
DDS::InstanceHandle_t OpenDDS::DCPS::DataWriterImpl::register_instance_w_timestamp | ( | const Sample & | sample, |
const DDS::Time_t & | timestamp | ||
) |
Definition at line 2916 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_TEXT(), get_or_create_instance_handle(), DDS::HANDLE_NIL, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, and OpenDDS::DCPS::retcode_to_string().
Referenced by OpenDDS::XTypes::DynamicDataWriterImpl::register_instance_w_timestamp(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::register_instance_w_timestamp().
void OpenDDS::DCPS::DataWriterImpl::remove_all_associations | ( | ) |
Definition at line 783 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), DBG_ENTRY_LVL, LM_WARNING, lock_, readers_, remove_associations(), OpenDDS::DCPS::TransportClient::stop_associating(), and OpenDDS::DCPS::TransportClient::transport_stop().
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter().
|
virtual |
Section 7.1.4.1: total_count will not decrement.
: Reconcile this with the verbiage in section 7.1.4.1
Implements OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 553 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), DDS::PublicationMatchedStatus::current_count, DDS::PublicationMatchedStatus::current_count_change, data_container_, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::TransportClient::disassociate(), OpenDDS::DCPS::Observer::e_DISASSOCIATED, OpenDDS::DCPS::EntityImpl::get_observer(), id_to_handle_map_, is_bit_, CORBA::is_nil(), DDS::PublicationMatchedStatus::last_subscription_handle, listener_for(), LM_DEBUG, lock_, lookup_instance_handles(), notify_publication_lost(), OpenDDS::DCPS::EntityImpl::notify_status_condition(), OpenDDS::DCPS::Observer::on_disassociated(), participant_servant_, publication_id_, publication_match_status_, DDS::PUBLICATION_MATCHED_STATUS, reader_info_, reader_info_lock_, readers_, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), OpenDDS::DCPS::TransportClient::stop_associating(), sync_unreg_rem_assocs_lock_, and DDS::PublicationMatchedStatus::total_count_change.
Referenced by remove_all_associations().
|
virtual |
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 684 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, ACE_TEXT(), available_data_list_, OpenDDS::DCPS::SendStateDataSampleList::begin(), controlTracker, create_control_message(), data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::STUN::encoding(), OpenDDS::DCPS::SendStateDataSampleList::end(), OpenDDS::DCPS::END_HISTORIC_SAMPLES, OpenDDS::DCPS::SendStateDataSampleList::enqueue_tail(), OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), get_db_lock(), get_lock(), get_resend_data(), header, OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::Encoding::KIND_UNALIGNED_CDR, DDS::DataWriterQos::lifespan, LM_ERROR, LM_INFO, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::MessageTracker::message_dropped(), OpenDDS::DCPS::MessageTracker::message_sent(), OpenDDS::DCPS::move(), OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), OPENDDS_STRING, publisher_servant_, qos_, reader_info_, reader_info_lock_, OpenDDS::DCPS::SEND_CONTROL_ERROR, OpenDDS::DCPS::TransportClient::send_w_control(), and OpenDDS::DCPS::serialized_size().
|
virtual |
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2728 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::TransportSendListener::InlineQosData::dw_qos, TAO::String_var< charT >::in(), OpenDDS::DCPS::TransportSendListener::InlineQosData::pub_qos, publisher_servant_, qos_, OpenDDS::DCPS::TransportSendListener::InlineQosData::topic_name, and topic_name_.
|
private |
Definition at line 192 of file DataWriterImpl.cpp.
References participant_servant_.
Referenced by OpenDDS::DCPS::WriteDataContainer::unregister_all().
void OpenDDS::DCPS::DataWriterImpl::send_all_to_flush_control | ( | ACE_Guard< ACE_Recursive_Thread_Mutex > & | guard | ) |
Definition at line 1577 of file DataWriterImpl.cpp.
References controlTracker, DBG_ENTRY_LVL, get_unsent_data(), OpenDDS::DCPS::MessageTracker::message_sent(), ACE_Guard< ACE_LOCK >::release(), and OpenDDS::DCPS::TransportClient::send().
Referenced by dispose(), dispose_and_unregister(), get_or_create_instance_handle(), register_instance_from_durable_data(), send_request_ack(), and unregister_instance_i().
|
protectedvirtual |
Definition at line 2767 of file DataWriterImpl.cpp.
References controlTracker, OpenDDS::DCPS::MessageTracker::message_dropped(), OpenDDS::DCPS::MessageTracker::message_sent(), OpenDDS::DCPS::move(), OpenDDS::DCPS::TransportClient::send_control(), and OpenDDS::DCPS::SEND_CONTROL_OK.
Referenced by end_coherent_changes(), and send_liveliness().
|
private |
|
private |
Send the liveliness message.
Definition at line 2513 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), create_control_message(), OpenDDS::DCPS::DATAWRITER_LIVELINESS, domain_id_, header, DDS::LivelinessQosPolicy::kind, last_liveliness_activity_time_, DDS::DataWriterQos::liveliness, LM_ERROR, DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS, OpenDDS::DCPS::move(), OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), qos_, send_control(), OpenDDS::DCPS::SEND_CONTROL_ERROR, and TheServiceParticipant.
Referenced by assert_liveliness(), and handle_timeout().
|
private |
Definition at line 1040 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), create_control_message(), data_container_, OpenDDS::DCPS::DataSampleElement::get_header(), get_lock(), LM_ERROR, OpenDDS::DCPS::move(), OpenDDS::DCPS::TimePoint_T< SystemClock >::now(), OpenDDS::DCPS::REQUEST_ACK, DDS::RETCODE_ERROR, DDS::RETCODE_OK, send_all_to_flush_control(), OpenDDS::DCPS::DataSampleElement::set_sample(), and OpenDDS::DCPS::TimePoint_T< AceClock >::to_dds_time().
Referenced by wait_for_acknowledgments().
void OpenDDS::DCPS::DataWriterImpl::send_suspended_data | ( | ) |
Called by the PublisherImpl to indicate that the Publisher is now resumed and any data collected while it was suspended should now be sent.
Definition at line 1964 of file DataWriterImpl.cpp.
References available_data_list_, max_suspended_transaction_id_, min_suspended_transaction_id_, OpenDDS::DCPS::SendStateDataSampleList::reset(), and OpenDDS::DCPS::TransportClient::send().
|
protected |
Definition at line 2970 of file DataWriterImpl.cpp.
References ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, ACE_ERROR, ACE_NEW_MALLOC_RETURN, ACE_NEW_RETURN, OpenDDS::DCPS::TypeSupportImpl::base_extensibility(), OpenDDS::DCPS::DataWriterImpl::EncodingMode::buffer_size(), OpenDDS::DCPS::TransportClient::cdr_encapsulation(), data_allocator_, db_allocator_, OpenDDS::STUN::encoding(), OpenDDS::DCPS::DataWriterImpl::EncodingMode::encoding(), encoding_mode_, OpenDDS::DCPS::LogLevel::Error, OpenDDS::DCPS::EncapsulationHeader::from_encoding(), OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), get_db_lock(), OpenDDS::DCPS::Sample::key_only(), LM_ERROR, OpenDDS::DCPS::log_level, ACE_Time_Value::max_time, mb_allocator_, ACE_Message_Block::MB_DATA, OpenDDS::DCPS::unique_ptr< T, Deleter >::release(), OpenDDS::DCPS::unique_ptr< T, Deleter >::reset(), OpenDDS::DCPS::Sample::serialize(), OpenDDS::DCPS::EncapsulationHeader::set_encapsulation_options(), skip_serialize_, OpenDDS::DCPS::Sample::to_message_block(), type_support_, and ACE_Time_Value::zero.
Referenced by get_or_create_instance_handle(), and write_sample().
|
virtual |
Definition at line 985 of file DataWriterImpl.cpp.
References listener_, listener_mask_, listener_mutex_, and DDS::RETCODE_OK.
Referenced by cleanup(), and init().
|
inline |
|
virtual |
Definition at line 916 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), OpenDDS::DCPS::Qos_Helper::changeable(), OpenDDS::DCPS::Qos_Helper::consistent(), data_container_, DDS::DataWriterQos::deadline, domain_id_, dp_id_, OpenDDS::DCPS::Observer::e_QOS_CHANGED, OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::EntityImpl::get_observer(), LM_ERROR, OpenDDS::DCPS::Observer::on_qos_changed(), OPENDDS_NO_DURABILITY_KIND_TRANSIENT_PERSISTENT_COMPATIBILITY_CHECK, OPENDDS_NO_DURABILITY_SERVICE_COMPATIBILITY_CHECK, OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE_COMPATIBILITY_CHECK, OPENDDS_NO_OWNERSHIP_PROFILE_COMPATIBILITY_CHECK, OPENDDS_NO_OWNERSHIP_STRENGTH_COMPATIBILITY_CHECK, passed_qos_, DDS::DeadlineQosPolicy::period, publication_id_, publisher_servant_, qos_, DDS::DataWriterQos::representation, DDS::RETCODE_ERROR, DDS::RETCODE_IMMUTABLE_POLICY, DDS::RETCODE_INCONSISTENT_POLICY, DDS::RETCODE_OK, DDS::RETCODE_UNSUPPORTED, TheServiceParticipant, OpenDDS::DCPS::Qos_Helper::valid(), and DDS::DataRepresentationQosPolicy::value.
void OpenDDS::DCPS::DataWriterImpl::set_wait_pending_deadline | ( | const MonotonicTimePoint & | deadline | ) |
Set deadline to complete wait_pending by. If 0, then wait_pending will wait indefinitely if needed.
Definition at line 2787 of file DataWriterImpl.cpp.
References wait_pending_deadline_.
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter(), and OpenDDS::DCPS::PublisherImpl::set_wait_pending_deadline().
|
protected |
Setup CDR serialization options.
Definition at line 2823 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, OpenDDS::DCPS::DataWriterImpl::EncodingMode::buffer_size_bound(), OpenDDS::DCPS::TransportClient::cdr_encapsulation(), data_allocator_, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::DataWriterImpl::EncodingMode::encoding(), encoding_mode_, OpenDDS::DCPS::SerializedSizeBound::get(), OpenDDS::DCPS::Encoding::kind(), OpenDDS::DCPS::Encoding::kind_to_string(), OpenDDS::DCPS::Encoding::KIND_UNALIGNED_CDR, OpenDDS::DCPS::Encoding::KIND_XCDR1, LM_DEBUG, LM_NOTICE, LM_WARNING, OpenDDS::DCPS::log_level, OpenDDS::DCPS::TypeSupportImpl::max_extensibility(), OpenDDS::DCPS::MUTABLE, n_chunks_, OpenDDS::DCPS::TypeSupportImpl::name(), OpenDDS::DCPS::LogLevel::Notice, qos_, OpenDDS::DCPS::repr_to_encoding_kind(), OpenDDS::DCPS::repr_to_string(), DDS::DataWriterQos::representation, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::TransportClient::swap_bytes(), type_support_, OpenDDS::DCPS::UNALIGNED_CDR_DATA_REPRESENTATION, OpenDDS::DCPS::DataWriterImpl::EncodingMode::valid(), DDS::DataRepresentationQosPolicy::value, and OpenDDS::DCPS::LogLevel::Warning.
Referenced by enable().
bool OpenDDS::DCPS::DataWriterImpl::should_ack | ( | ) | const |
Does this writer have samples to be acknowledged?
Definition at line 1016 of file DataWriterImpl.cpp.
References readers_.
|
private |
Definition at line 1930 of file DataWriterImpl.cpp.
References ACE_GUARD, get_max_sn(), reader_info_, and reader_info_lock_.
Referenced by write().
|
virtual |
Reimplemented from OpenDDS::DCPS::TransportClient.
Definition at line 279 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::TransportClient::ASSOC_ACTIVE, OpenDDS::DCPS::TransportClient::ASSOC_OK, association_complete_i(), DBG_ENTRY_LVL, OpenDDS::DCPS::DCPS_debug_level, LM_DEBUG, LM_ERROR, LM_INFO, lock_, and publication_id_.
|
virtual |
Reimplemented from OpenDDS::DCPS::TransportSendListener.
Definition at line 2805 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::TransportClient::connection_info(), domain_id(), domain_id_, dp_id_, lock_, OpenDDS::DCPS::TransportClient::populate_connection_info(), publication_id_, ACE_Guard< ACE_LOCK >::release(), and TheServiceParticipant.
void OpenDDS::DCPS::DataWriterImpl::unregister_all | ( | ) |
Delegate to WriteDataContainer to unregister all instances.
Definition at line 2052 of file DataWriterImpl.cpp.
References data_container_.
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter().
|
virtual |
Reimplemented from OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 832 of file DataWriterImpl.cpp.
References OpenDDS::DCPS::TransportClient::unregister_for_reader().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::unregister_instance_i | ( | DDS::InstanceHandle_t | handle, |
const DDS::Time_t & | source_timestamp | ||
) |
Delegate to the WriteDataContainer to unregister and tell the transport to broadcast the unregistered instance.
Definition at line 1685 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), DDS::WriterDataLifecycleQosPolicy::autodispose_unregistered_instances, create_control_message(), data_container_, DBG_ENTRY_LVL, dispose_and_unregister(), OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::DataSampleElement::get_header(), get_lock(), LM_ERROR, OpenDDS::DCPS::move(), qos_, DDS::RETCODE_ERROR, DDS::RETCODE_NOT_ENABLED, DDS::RETCODE_OK, send_all_to_flush_control(), OpenDDS::DCPS::DataSampleElement::set_sample(), OpenDDS::DCPS::UNREGISTER_INSTANCE, and DDS::DataWriterQos::writer_data_lifecycle.
Referenced by unregister_instance_w_timestamp(), and unregister_instances().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::unregister_instance_w_timestamp | ( | const Sample & | sample, |
DDS::InstanceHandle_t | instance_handle, | ||
const DDS::Time_t & | timestamp | ||
) |
Definition at line 2929 of file DataWriterImpl.cpp.
References instance_must_exist(), DDS::RETCODE_OK, and unregister_instance_i().
Referenced by OpenDDS::XTypes::DynamicDataWriterImpl::unregister_instance_w_timestamp(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::unregister_instance_w_timestamp().
void OpenDDS::DCPS::DataWriterImpl::unregister_instances | ( | const DDS::Time_t & | source_timestamp | ) |
Unregister all registered instances and tell the transport to broadcast the unregistered instances.
Definition at line 1813 of file DataWriterImpl.cpp.
References ACE_GUARD, data_container_, sync_unreg_rem_assocs_lock_, and unregister_instance_i().
Referenced by prepare_to_delete().
|
virtual |
Implements OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 854 of file DataWriterImpl.cpp.
References ACE_GUARD, OpenDDS::DCPS::IncompatibleQosStatus::count_since_last_send, CORBA::is_nil(), OpenDDS::DCPS::IncompatibleQosStatus::last_policy_id, DDS::OfferedIncompatibleQosStatus::last_policy_id, listener_for(), lock_, OpenDDS::DCPS::EntityImpl::notify_status_condition(), DDS::OFFERED_INCOMPATIBLE_QOS_STATUS, offered_incompatible_qos_status_, OpenDDS::DCPS::IncompatibleQosStatus::policies, DDS::OfferedIncompatibleQosStatus::policies, OpenDDS::DCPS::EntityImpl::set_status_changed_flag(), OpenDDS::DCPS::IncompatibleQosStatus::total_count, DDS::OfferedIncompatibleQosStatus::total_count, and DDS::OfferedIncompatibleQosStatus::total_count_change.
|
virtual |
Reimplemented from OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 840 of file DataWriterImpl.cpp.
References ACE_GUARD, reader_info_, reader_info_lock_, and OpenDDS::DCPS::TransportClient::update_locators().
|
virtual |
Implements OpenDDS::DCPS::DataWriterCallbacks.
Definition at line 891 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, LM_WARNING, lock_, publication_id_, reader_info_, reader_info_lock_, and TheServiceParticipant.
|
virtual |
Definition at line 1089 of file DataWriterImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), create_ack_token(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::SequenceNumber::getValue(), DDS::ReliabilityQosPolicy::kind, LM_DEBUG, qos_, DDS::DataWriterQos::reliability, DDS::RELIABLE_RELIABILITY_QOS, DDS::RETCODE_OK, send_request_ack(), OpenDDS::DCPS::DataWriterImpl::AckToken::sequence_, and wait_for_specific_ack().
|
protected |
Definition at line 1109 of file DataWriterImpl.cpp.
References data_container_, OpenDDS::DCPS::DataWriterImpl::AckToken::deadline(), OpenDDS::DCPS::DataWriterImpl::AckToken::deadline_is_infinite(), and OpenDDS::DCPS::DataWriterImpl::AckToken::sequence_.
Referenced by wait_for_acknowledgments().
void OpenDDS::DCPS::DataWriterImpl::wait_pending | ( | ) |
Wait for pending data and control messages to drain.
Definition at line 2706 of file DataWriterImpl.cpp.
References controlTracker, data_container_, OpenDDS::DCPS::TransportRegistry::instance(), OpenDDS::DCPS::MessageTracker::wait_messages_pending(), and wait_pending_deadline_.
Referenced by OpenDDS::DCPS::PublisherImpl::delete_datawriter().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::write | ( | Message_Block_Ptr | sample, |
DDS::InstanceHandle_t | handle, | ||
const DDS::Time_t & | source_timestamp, | ||
GUIDSeq * | filter_out, | ||
const void * | real_data | ||
) |
Delegate to the WriteDataContainer to queue the instance sample and finally tell the transport to send the sample.
filter_out | can either be null (if the writer can't or won't evaluate the filters), or a list of associated reader GUID_ts that should NOT get the data sample due to content filtering. |
Definition at line 1823 of file DataWriterImpl.cpp.
References ACE_ERROR_RETURN, ACE_GUARD_RETURN, ACE_TEXT(), available_data_list_, coherent_, coherent_samples_, create_sample_data_message(), data_container_, DBG_ENTRY_LVL, OpenDDS::DCPS::Observer::e_SAMPLE_SENT, OpenDDS::DCPS::EntityImpl::enabled_, OpenDDS::DCPS::SendStateDataSampleList::enqueue_tail(), OpenDDS::DCPS::DataSampleElement::get_header(), get_lock(), OpenDDS::DCPS::EntityImpl::get_observer(), get_unsent_data(), get_value_dispatcher(), OpenDDS::DCPS::DataSampleHeader::instance_state(), last_liveliness_activity_time_, LM_ERROR, lock_, max_suspended_transaction_id_, min_suspended_transaction_id_, OpenDDS::DCPS::move(), OpenDDS::DCPS::Observer::on_sample_sent(), publisher_servant_, ACE_Guard< ACE_LOCK >::release(), DDS::RETCODE_ERROR, DDS::RETCODE_NOT_ENABLED, DDS::RETCODE_OK, DDS::RETCODE_TIMEOUT, OpenDDS::DCPS::TransportClient::send(), OpenDDS::DCPS::DataSampleHeader::sequence_, OpenDDS::DCPS::DataSampleElement::set_filter_out(), OpenDDS::DCPS::DataSampleElement::set_sample(), OpenDDS::DCPS::TimePoint_T< AceClock >::set_to_now(), and track_sequence_number().
Referenced by OpenDDS::DCPS::DataDurabilityCache::get_data(), and write_sample().
DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::write_sample | ( | const Sample & | sample, |
DDS::InstanceHandle_t | handle, | ||
const DDS::Time_t & | source_timestamp, | ||
GUIDSeq * | filter_out | ||
) |
Definition at line 3218 of file DataWriterImpl.cpp.
References ACE_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::move(), OpenDDS::DCPS::Sample::native_data(), OpenDDS::DCPS::LogLevel::Notice, OPENDDS_END_VERSIONED_NAMESPACE_DECL, DDS::RETCODE_ERROR, serialize_sample(), and write().
Referenced by write_w_timestamp().
|
protected |
Definition at line 3170 of file DataWriterImpl.cpp.
References ACE_ERROR, ACE_GUARD_RETURN, OpenDDS::DCPS::Sample::eval(), OpenDDS::DCPS::DataWriterImpl::ReaderInfo::eval_, OpenDDS::DCPS::DataWriterImpl::ReaderInfo::expression_params_, filter_out(), get_or_create_instance_handle(), get_type_support(), DDS::HANDLE_NIL, LM_NOTICE, OpenDDS::DCPS::log_level, name, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::push_back(), reader_info_, reader_info_lock_, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::retcode_to_string(), TheServiceParticipant, and write_sample().
Referenced by OpenDDS::XTypes::DynamicDataWriterImpl::write_w_timestamp(), and OpenDDS::DCPS::DataWriterImpl_T< MessageType >::write_w_timestamp().
|
friend |
Definition at line 734 of file DataWriterImpl.h.
|
friend |
Definition at line 89 of file DataWriterImpl.h.
|
friend |
Definition at line 88 of file DataWriterImpl.h.
Referenced by enable().
|
protected |
The multiplier for allocators affected by associations.
Definition at line 562 of file DataWriterImpl.h.
Referenced by enable().
|
private |
Definition at line 831 of file DataWriterImpl.h.
Referenced by association_complete_i(), replay_durable_data_for(), send_suspended_data(), and write().
|
private |
Flag indicating DataWriter current belongs to a coherent change set.
Definition at line 768 of file DataWriterImpl.h.
Referenced by begin_coherent_changes(), coherent_changes_pending(), create_sample_data_message(), end_coherent_changes(), and write().
|
private |
The number of samples belonging to the current coherent change set.
Definition at line 771 of file DataWriterImpl.h.
Referenced by end_coherent_changes(), and write().
MessageTracker OpenDDS::DCPS::DataWriterImpl::controlTracker |
Definition at line 429 of file DataWriterImpl.h.
Referenced by association_complete_i(), control_delivered(), control_dropped(), OpenDDS::DCPS::WriteDataContainer::data_delivered(), OpenDDS::DCPS::WriteDataContainer::data_dropped(), replay_durable_data_for(), send_all_to_flush_control(), send_control(), and wait_pending().
|
private |
Definition at line 811 of file DataWriterImpl.h.
Referenced by serialize_sample(), and setup_serialization().
|
private |
The sample data container.
Definition at line 773 of file DataWriterImpl.h.
Referenced by association_complete_i(), create_sample_data_message(), data_delivered(), data_dropped(), dispose(), dispose_and_unregister(), enable(), get_handle_instance(), get_instance_handles(), num_samples(), persist_data(), register_instance_i(), remove_associations(), replay_durable_data_for(), send_request_ack(), set_qos(), unregister_all(), unregister_instance_i(), unregister_instances(), wait_for_specific_ack(), wait_pending(), and write().
Atomic<int> OpenDDS::DCPS::DataWriterImpl::data_delivered_count_ |
Definition at line 427 of file DataWriterImpl.h.
Referenced by data_delivered().
Atomic<int> OpenDDS::DCPS::DataWriterImpl::data_dropped_count_ |
|
private |
The data block allocator.
Definition at line 808 of file DataWriterImpl.h.
Referenced by create_control_message(), create_sample_data_message(), enable(), and serialize_sample().
|
private |
Definition at line 738 of file DataWriterImpl.h.
|
private |
The domain id.
Definition at line 756 of file DataWriterImpl.h.
Referenced by enable(), init(), send_liveliness(), set_qos(), and transport_discovery_change().
|
private |
Definition at line 757 of file DataWriterImpl.h.
Referenced by enable(), get_dp_id(), set_qos(), and transport_discovery_change().
|
protected |
Definition at line 869 of file DataWriterImpl.h.
Referenced by dispose_w_timestamp(), enable(), and get_or_create_instance_handle().
|
protected |
Referenced by filter_out(), serialize_sample(), and setup_serialization().
|
private |
The header data allocator.
Definition at line 810 of file DataWriterImpl.h.
Referenced by create_sample_data_message(), and enable().
|
private |
Definition at line 779 of file DataWriterImpl.h.
Referenced by association_complete_i(), get_matched_subscriptions(), and remove_associations().
|
private |
Definition at line 858 of file DataWriterImpl.h.
Referenced by get_key_value(), insert_instance(), and instance_must_exist().
|
private |
Definition at line 860 of file DataWriterImpl.h.
Referenced by find_instance(), insert_instance(), instance_must_exist(), and lookup_instance().
|
private |
Flag indicates that this datawriter is a builtin topic datawriter.
Definition at line 826 of file DataWriterImpl.h.
Referenced by add_association(), association_complete_i(), init(), notify_publication_disconnected(), notify_publication_lost(), notify_publication_reconnected(), and remove_associations().
|
private |
Total number of offered deadlines missed during last offered deadline status check.
Definition at line 822 of file DataWriterImpl.h.
Referenced by enable(), and get_offered_deadline_missed_status().
|
private |
Timestamp of last write/dispose/assert_liveliness.
Definition at line 819 of file DataWriterImpl.h.
Referenced by handle_timeout(), participant_liveliness_activity_after(), send_liveliness(), and write().
|
private |
Used to notify the entity for relevant events.
Definition at line 754 of file DataWriterImpl.h.
Referenced by get_ext_listener(), get_listener(), listener_for(), and set_listener().
|
private |
The StatusKind bit mask indicates which status condition change can be notified by the listener of this entity.
Definition at line 752 of file DataWriterImpl.h.
Referenced by listener_for(), and set_listener().
|
private |
Mutex to protect listener info.
Definition at line 749 of file DataWriterImpl.h.
Referenced by get_ext_listener(), get_listener(), listener_for(), and set_listener().
|
private |
Definition at line 848 of file DataWriterImpl.h.
Referenced by assert_liveliness_by_participant(), and handle_timeout().
|
private |
The time interval for sending liveliness message.
Definition at line 817 of file DataWriterImpl.h.
Referenced by enable(), handle_timeout(), and liveliness_check_interval().
|
private |
True if the writer failed to actively signal its liveliness within its offered liveliness period.
Definition at line 791 of file DataWriterImpl.h.
Referenced by handle_timeout().
|
private |
Status conditions.
Definition at line 784 of file DataWriterImpl.h.
Referenced by DataWriterImpl(), get_liveliness_lost_status(), and handle_timeout().
|
private |
Definition at line 853 of file DataWriterImpl.h.
Referenced by enable(), and handle_timeout().
|
mutableprivate |
The lock to protect the activate subscriptions and status changes.
Definition at line 776 of file DataWriterImpl.h.
Referenced by association_complete_i(), enable(), get_liveliness_lost_status(), get_matched_subscriptions(), get_offered_deadline_missed_status(), get_offered_incompatible_qos_status(), get_publication_matched_status(), get_readers(), handle_timeout(), participant_liveliness_activity_after(), remove_all_associations(), remove_associations(), transport_assoc_done(), transport_discovery_change(), update_incompatible_qos(), update_subscription_params(), and write().
|
private |
Definition at line 830 of file DataWriterImpl.h.
Referenced by send_suspended_data(), and write().
|
private |
The message block allocator.
Definition at line 806 of file DataWriterImpl.h.
Referenced by create_control_message(), create_sample_data_message(), enable(), and serialize_sample().
|
private |
The cached available data while suspending and associated transaction ids.
Definition at line 829 of file DataWriterImpl.h.
Referenced by send_suspended_data(), and write().
|
private |
Monitor object for this entity.
Definition at line 834 of file DataWriterImpl.h.
Referenced by association_complete_i(), DataWriterImpl(), enable(), and register_instance_i().
|
protected |
The number of chunks for the cached allocator.
Definition at line 559 of file DataWriterImpl.h.
Referenced by enable(), and setup_serialization().
|
private |
Definition at line 785 of file DataWriterImpl.h.
Referenced by DataWriterImpl(), enable(), and get_offered_deadline_missed_status().
|
private |
Definition at line 786 of file DataWriterImpl.h.
Referenced by DataWriterImpl(), get_offered_incompatible_qos_status(), and update_incompatible_qos().
|
protected |
Definition at line 868 of file DataWriterImpl.h.
Referenced by dispose_w_timestamp(), enable(), and get_or_create_instance_handle().
|
protected |
The participant servant which creats the publisher that creates this datawriter.
Definition at line 576 of file DataWriterImpl.h.
Referenced by add_association(), assert_liveliness(), association_complete_i(), enable(), get_builtin_subscriber_proxy(), get_crypto_handle(), get_instance_handle(), get_matched_subscription_data(), get_next_handle(), init(), lookup_instance_handles(), remove_associations(), return_handle(), and ~DataWriterImpl().
|
protected |
The qos policy passed in by the user. Differs from qos_ because representation has been interpreted.
Definition at line 572 of file DataWriterImpl.h.
|
private |
Periodic Monitor object for this entity.
Definition at line 837 of file DataWriterImpl.h.
Referenced by DataWriterImpl().
|
private |
The repository id of this datawriter/publication.
Definition at line 761 of file DataWriterImpl.h.
Referenced by association_complete_i(), create_control_message(), create_sample_data_message(), data_delivered(), enable(), get_instance_handle(), remove_associations(), set_qos(), transport_assoc_done(), transport_discovery_change(), update_subscription_params(), and ~DataWriterImpl().
|
private |
Definition at line 787 of file DataWriterImpl.h.
Referenced by association_complete_i(), DataWriterImpl(), get_publication_matched_status(), and remove_associations().
|
private |
The publisher servant which creates this datawriter.
Definition at line 759 of file DataWriterImpl.h.
Referenced by association_complete_i(), create_control_message(), create_sample_data_message(), enable(), end_coherent_changes(), get_publisher(), init(), listener_for(), parent(), replay_durable_data_for(), retrieve_inline_qos_data(), set_qos(), and write().
|
protected |
The qos policy list of this datawriter.
Definition at line 569 of file DataWriterImpl.h.
Referenced by add_association(), assert_liveliness(), assert_liveliness_by_participant(), association_complete_i(), create_sample_data_message(), enable(), handle_timeout(), init(), liveliness_check_interval(), OpenDDS::DCPS::WriteDataContainer::obtain_buffer(), participant_liveliness_activity_after(), replay_durable_data_for(), retrieve_inline_qos_data(), send_liveliness(), set_qos(), setup_serialization(), unregister_instance_i(), and wait_for_acknowledgments().
|
private |
The orb's reactor to be used to register the liveliness timer.
Definition at line 815 of file DataWriterImpl.h.
Referenced by enable(), handle_timeout(), and init().
|
protected |
Definition at line 597 of file DataWriterImpl.h.
Referenced by add_association(), association_complete_i(), create_control_message(), need_sequence_repair_i(), remove_associations(), replay_durable_data_for(), track_sequence_number(), update_locators(), update_subscription_params(), and write_w_timestamp().
|
protected |
Definition at line 579 of file DataWriterImpl.h.
Referenced by add_association(), association_complete_i(), create_control_message(), need_sequence_repair(), remove_associations(), replay_durable_data_for(), track_sequence_number(), update_locators(), update_subscription_params(), and write_w_timestamp().
|
private |
Definition at line 781 of file DataWriterImpl.h.
Referenced by association_complete_i(), get_readers(), remove_all_associations(), remove_associations(), and should_ack().
|
protected |
Definition at line 867 of file DataWriterImpl.h.
Referenced by dispose_w_timestamp(), enable(), and get_or_create_instance_handle().
|
private |
The sequence number unique in DataWriter scope.
Definition at line 763 of file DataWriterImpl.h.
Referenced by create_control_message(), and need_sequence_repair_i().
|
protected |
Definition at line 608 of file DataWriterImpl.h.
Referenced by serialize_sample().
|
mutableprivate |
Mutex for sequence_number_.
Definition at line 765 of file DataWriterImpl.h.
Referenced by create_control_message(), and create_sample_data_message().
|
private |
Definition at line 852 of file DataWriterImpl.h.
Referenced by remove_associations(), and unregister_instances().
|
private |
The associated topic repository id.
Definition at line 743 of file DataWriterImpl.h.
Referenced by init().
|
private |
The name of associated topic.
Definition at line 741 of file DataWriterImpl.h.
Referenced by enable(), init(), and retrieve_inline_qos_data().
|
private |
The topic servant.
Definition at line 745 of file DataWriterImpl.h.
Referenced by cleanup(), enable(), get_topic(), and init().
|
protected |
The type name of associated topic.
Definition at line 566 of file DataWriterImpl.h.
Referenced by get_type_name(), and init().
|
private |
Definition at line 746 of file DataWriterImpl.h.
Referenced by cleanup(), enable(), filter_out(), init(), serialize_sample(), and setup_serialization().
|
private |
Definition at line 855 of file DataWriterImpl.h.
Referenced by set_wait_pending_deadline(), and wait_pending().