#include <DataWriterImpl.h>
Inheritance diagram for OpenDDS::DCPS::DataWriterImpl:


Public Types | |
| typedef std::map< RepoId, SequenceNumber, GUID_tKeyLessThan > | RepoIdToSequenceMap |
| typedef std::vector< DDS::InstanceHandle_t > | InstanceHandleVec |
| typedef std::set< RepoId, GUID_tKeyLessThan > | IdSet |
Public Member Functions | |
| DataWriterImpl () | |
| Constructor. | |
| virtual | ~DataWriterImpl () |
| Destructor. | |
| virtual DDS::InstanceHandle_t | get_instance_handle () throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | set_qos (const DDS::DataWriterQos &qos) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_qos (DDS::DataWriterQos &qos) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | set_listener (DDS::DataWriterListener_ptr a_listener, DDS::StatusMask mask) throw (CORBA::SystemException) |
| virtual DDS::DataWriterListener_ptr | get_listener () throw (CORBA::SystemException) |
| virtual DDS::Topic_ptr | get_topic () throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | wait_for_acknowledgments (const DDS::Duration_t &max_wait) throw (CORBA::SystemException) |
| virtual DDS::Publisher_ptr | get_publisher () throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_liveliness_lost_status (DDS::LivelinessLostStatus &status) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_offered_deadline_missed_status (DDS::OfferedDeadlineMissedStatus &status) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_offered_incompatible_qos_status (DDS::OfferedIncompatibleQosStatus &status) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_publication_matched_status (DDS::PublicationMatchedStatus &status) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | assert_liveliness () throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | assert_liveliness_by_participant () |
| void | get_instance_handles (InstanceHandleVec &instance_handles) |
| void | get_readers (IdSet &readers) |
| virtual DDS::ReturnCode_t | get_matched_subscriptions (DDS::InstanceHandleSeq &subscription_handles) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | get_matched_subscription_data (DDS::SubscriptionBuiltinTopicData &subscription_data, DDS::InstanceHandle_t subscription_handle) throw (CORBA::SystemException) |
| virtual DDS::ReturnCode_t | enable () throw (CORBA::SystemException) |
| void | add_association (const RepoId &yourId, const ReaderAssociation &reader, bool active) |
| void | association_complete (const RepoId &remote_id) |
| void | remove_associations (const ReaderIdSeq &readers, bool callback) |
| void | update_incompatible_qos (const IncompatibleQosStatus &status) |
| void | update_subscription_params (const RepoId &readerId, const DDS::StringSeq ¶ms) |
| void | cleanup () |
| virtual void | init (DDS::Topic_ptr topic, TopicImpl *topic_servant, const DDS::DataWriterQos &qos, DDS::DataWriterListener_ptr a_listener, const DDS::StatusMask &mask, OpenDDS::DCPS::DomainParticipantImpl *participant_servant, OpenDDS::DCPS::PublisherImpl *publisher_servant, DDS::DataWriter_ptr dw_local, OpenDDS::DCPS::DataWriterRemote_ptr dw_remote) throw (CORBA::SystemException) |
| DDS::ReturnCode_t | register_instance_i (DDS::InstanceHandle_t &handle, DataSample *data, const DDS::Time_t &source_timestamp) throw (CORBA::SystemException) |
| DDS::ReturnCode_t | unregister_instance_i (DDS::InstanceHandle_t handle, const DDS::Time_t &source_timestamp) throw (CORBA::SystemException) |
| void | unregister_instances (const DDS::Time_t &source_timestamp) |
| DDS::ReturnCode_t | write (DataSample *sample, DDS::InstanceHandle_t handle, const DDS::Time_t &source_timestamp, GUIDSeq *filter_out) |
| DDS::ReturnCode_t | dispose (DDS::InstanceHandle_t handle, const DDS::Time_t &source_timestamp) throw (CORBA::SystemException) |
| DDS::ReturnCode_t | num_samples (DDS::InstanceHandle_t handle, size_t &size) |
| DataSampleList | get_unsent_data () |
| DataSampleList | get_resend_data () |
| RepoId | get_publication_id () |
| RepoId | get_dp_id () |
| void | unregister_all () |
| void | data_delivered (const DataSampleListElement *sample) |
| void | control_delivered (ACE_Message_Block *sample) |
| SendControlStatus | send_control_customized (const DataLinkSet_rch &links, ACE_Message_Block *msg, void *extra) |
| bool | should_ack () const |
| Does this writer have samples to be acknowledged? | |
| AckToken | create_ack_token (DDS::Duration_t max_wait) const |
| Create an AckToken for ack operations. | |
| DDS::ReturnCode_t | send_ack_requests (AckToken &token) |
| Send SAMPLE_ACK messages to associated readers. | |
| DDS::ReturnCode_t | wait_for_ack_responses (const AckToken &token) |
| Wait for SAMPLE_ACK responses from associated readers. | |
| virtual void | deliver_ack (const DataSampleHeader &header, DataSample *data) |
| Deliver a requested SAMPLE_ACK message to this writer. | |
| virtual bool | check_transport_qos (const TransportInst &inst) |
| bool | coherent_changes_pending () |
| Are coherent changes pending? | |
| void | begin_coherent_changes () |
| Starts a coherent change set; should only be called once. | |
| void | end_coherent_changes (const GroupCoherentSamples &group_samples) |
| Ends a coherent change set; should only be called once. | |
| const char * | get_topic_name () |
| char const * | get_type_name () const |
| void | data_dropped (const DataSampleListElement *element, bool dropped_by_transport) |
| void | control_dropped (ACE_Message_Block *sample, bool dropped_by_transport) |
| ACE_INLINE ACE_Recursive_Thread_Mutex & | get_lock () |
| virtual void | unregistered (DDS::InstanceHandle_t instance_handle) |
| DDS::DataWriterListener * | listener_for (DDS::StatusKind kind) |
| virtual int | handle_timeout (const ACE_Time_Value &tv, const void *arg) |
| Handle the assert liveliness timeout. | |
| virtual int | handle_close (ACE_HANDLE, ACE_Reactor_Mask) |
| void | send_suspended_data () |
| void | remove_all_associations () |
| void | notify_publication_disconnected (const ReaderIdSeq &subids) |
| void | notify_publication_reconnected (const ReaderIdSeq &subids) |
| void | notify_publication_lost (const ReaderIdSeq &subids) |
| void | notify_connection_deleted () |
| DDS::ReturnCode_t | create_sample_data_message (DataSample *data, DDS::InstanceHandle_t instance_handle, ACE_Message_Block *&message, const DDS::Time_t &source_timestamp, bool content_filter) |
| bool | persist_data () |
| void | reschedule_deadline () |
| void | wait_pending () |
| Wait for pending samples to drain. | |
| DDS::InstanceHandle_t | get_next_handle () |
| virtual EntityImpl * | parent () const |
Public Attributes | |
| int | data_dropped_count_ |
| Statistics counter. | |
| int | data_delivered_count_ |
| int | control_dropped_count_ |
| int | control_delivered_count_ |
Protected Types | |
| typedef std::map< RepoId, ReaderInfo, GUID_tKeyLessThan > | RepoIdToReaderInfoMap |
Protected Member Functions | |
| PublisherImpl * | get_publisher_servant () |
| virtual DDS::ReturnCode_t | enable_specific ()=0 throw (CORBA::SystemException) |
| PublicationInstance * | get_handle_instance (DDS::InstanceHandle_t handle) |
Protected Attributes | |
| size_t | n_chunks_ |
| The number of chunks for the cached allocator. | |
| size_t | association_chunk_multiplier_ |
| The multiplier for allocators affected by associations. | |
| CORBA::String_var | type_name_ |
| The type name of associated topic. | |
| DDS::DataWriterQos | qos_ |
| The qos policy list of this datawriter. | |
| DomainParticipantImpl * | participant_servant_ |
| RepoIdToReaderInfoMap | reader_info_ |
Private Types | |
| typedef std::map< RepoId, DDS::InstanceHandle_t, GUID_tKeyLessThan > | RepoIdToHandleMap |
Private Member Functions | |
| void | notify_publication_lost (const DDS::InstanceHandleSeq &handles) |
| ACE_Message_Block * | create_control_message (MessageId message_id, ACE_Message_Block *data, const DDS::Time_t &source_timestamp) |
| bool | send_liveliness (const ACE_Time_Value &now) |
| Send the liveliness message. | |
| bool | lookup_instance_handles (const ReaderIdSeq &ids, DDS::InstanceHandleSeq &hdls) |
| Lookup the instance handles by the subscription repo ids. | |
| const RepoId & | get_repo_id () const |
| CORBA::Long | get_priority_value (const AssociationData &) const |
Private Attributes | |
| CORBA::String_var | topic_name_ |
| The name of associated topic. | |
| RepoId | topic_id_ |
| The associated topic repository id. | |
| DDS::Topic_var | topic_objref_ |
| The object reference of the associated topic. | |
| TopicImpl * | topic_servant_ |
| The topic servant. | |
| DDS::StatusMask | listener_mask_ |
| DDS::DataWriterListener_var | listener_ |
| Used to notify the entity for relevant events. | |
| DDS::DataWriterListener * | fast_listener_ |
| The datawriter listener servant. | |
| DDS::DomainId_t | domain_id_ |
| The domain id. | |
| PublisherImpl * | publisher_servant_ |
| The publisher servant which creates this datawriter. | |
| DDS::DataWriter_var | dw_local_objref_ |
| the object reference of the local datawriter | |
| OpenDDS::DCPS::DataWriterRemote_var | dw_remote_objref_ |
| The object reference of the remote datawriter. | |
| PublicationId | publication_id_ |
| The repository id of this datawriter/publication. | |
| SequenceNumber | sequence_number_ |
| bool | coherent_ |
| ACE_UINT32 | coherent_samples_ |
| WriteDataContainer * | data_container_ |
| The sample data container. | |
| ACE_Recursive_Thread_Mutex | lock_ |
| RepoIdToHandleMap | id_to_handle_map_ |
| IdSet | readers_ |
| DDS::LivelinessLostStatus | liveliness_lost_status_ |
| Status conditions. | |
| DDS::OfferedDeadlineMissedStatus | offered_deadline_missed_status_ |
| DDS::OfferedIncompatibleQosStatus | offered_incompatible_qos_status_ |
| DDS::PublicationMatchedStatus | publication_match_status_ |
| bool | liveliness_lost_ |
| MessageBlockAllocator * | mb_allocator_ |
| The message block allocator. | |
| DataBlockAllocator * | db_allocator_ |
| The data block allocator. | |
| DataSampleHeaderAllocator * | header_allocator_ |
| The header data allocator. | |
| ACE_Reactor * | reactor_ |
| ACE_Time_Value | liveliness_check_interval_ |
| The time interval for sending liveliness message. | |
| ACE_Time_Value | last_liveliness_activity_time_ |
| Timestamp of last write/dispose/assert_liveliness. | |
| CORBA::Long | last_deadline_missed_total_count_ |
| std::auto_ptr< OfferedDeadlineWatchdog > | watchdog_ |
| bool | cancel_timer_ |
| bool | is_bit_ |
| bool | initialized_ |
| Flag indicates that the init() is called. | |
| ACE_SYNCH_MUTEX | wfaLock_ |
| Lock used for wait_for_acks() processing. | |
| ACE_Condition< ACE_SYNCH_MUTEX > | wfaCondition_ |
| Used to block in wait_for_acks(). | |
| RepoIdToSequenceMap | idToSequence_ |
| IdSet | pending_readers_ |
| DataSampleList | available_data_list_ |
| The cached available data while suspending. | |
| Monitor * | monitor_ |
| Monitor object for this entity. | |
| Monitor * | periodic_monitor_ |
| Periodic Monitor object for this entity. | |
Friends | |
| class | WriteDataContainer |
| class | PublisherImpl |
| class | ::DDS_TEST |
Classes | |
| struct | AckCustomization |
| struct | AckToken |
| struct | ReaderInfo |
See the DDS specification, OMG formal/04-12-02, 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.
| typedef std::set<RepoId, GUID_tKeyLessThan> OpenDDS::DCPS::DataWriterImpl::IdSet |
| typedef std::vector<DDS::InstanceHandle_t> OpenDDS::DCPS::DataWriterImpl::InstanceHandleVec |
typedef std::map<RepoId, DDS::InstanceHandle_t, GUID_tKeyLessThan> OpenDDS::DCPS::DataWriterImpl::RepoIdToHandleMap [private] |
typedef std::map<RepoId, ReaderInfo, GUID_tKeyLessThan> OpenDDS::DCPS::DataWriterImpl::RepoIdToReaderInfoMap [protected] |
| typedef std::map<RepoId, SequenceNumber, GUID_tKeyLessThan> OpenDDS::DCPS::DataWriterImpl::RepoIdToSequenceMap |
| OpenDDS::DCPS::DataWriterImpl::DataWriterImpl | ( | ) |
Constructor.
| OpenDDS::DCPS::DataWriterImpl::~DataWriterImpl | ( | ) | [virtual] |
Destructor.
| void OpenDDS::DCPS::DataWriterImpl::add_association | ( | const RepoId & | yourId, | |
| const ReaderAssociation & | reader, | |||
| bool | active | |||
| ) |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::assert_liveliness | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements DDS::DataWriter.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::assert_liveliness_by_participant | ( | ) | [virtual] |
| void OpenDDS::DCPS::DataWriterImpl::association_complete | ( | const RepoId & | remote_id | ) |
| void OpenDDS::DCPS::DataWriterImpl::begin_coherent_changes | ( | ) |
Starts a coherent change set; should only be called once.
| bool OpenDDS::DCPS::DataWriterImpl::check_transport_qos | ( | const TransportInst & | inst | ) | [virtual] |
Implements OpenDDS::DCPS::TransportClient.
| void OpenDDS::DCPS::DataWriterImpl::cleanup | ( | ) |
cleanup the DataWriter.
| bool OpenDDS::DCPS::DataWriterImpl::coherent_changes_pending | ( | ) |
Are coherent changes pending?
| void OpenDDS::DCPS::DataWriterImpl::control_delivered | ( | ACE_Message_Block * | sample | ) | [virtual] |
This is called by transport to notify that the control message is delivered.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
| void OpenDDS::DCPS::DataWriterImpl::control_dropped | ( | ACE_Message_Block * | sample, | |
| bool | dropped_by_transport | |||
| ) | [virtual] |
This is called by transport to notify that the control message is dropped.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
| DataWriterImpl::AckToken OpenDDS::DCPS::DataWriterImpl::create_ack_token | ( | DDS::Duration_t | max_wait | ) | const |
Create an AckToken for ack operations.
| ACE_Message_Block * OpenDDS::DCPS::DataWriterImpl::create_control_message | ( | MessageId | message_id, | |
| ACE_Message_Block * | data, | |||
| const DDS::Time_t & | source_timestamp | |||
| ) | [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.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::create_sample_data_message | ( | DataSample * | data, | |
| DDS::InstanceHandle_t | instance_handle, | |||
| ACE_Message_Block *& | 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.
| void OpenDDS::DCPS::DataWriterImpl::data_delivered | ( | const DataSampleListElement * | sample | ) | [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.
| void OpenDDS::DCPS::DataWriterImpl::data_dropped | ( | const DataSampleListElement * | element, | |
| bool | dropped_by_transport | |||
| ) | [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.
| void OpenDDS::DCPS::DataWriterImpl::deliver_ack | ( | const DataSampleHeader & | header, | |
| DataSample * | data | |||
| ) | [virtual] |
Deliver a requested SAMPLE_ACK message to this writer.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::dispose | ( | DDS::InstanceHandle_t | handle, | |
| const DDS::Time_t & | source_timestamp | |||
| ) | throw (CORBA::SystemException) |
Delegate to the WriteDataContainer to dispose all data samples for a given instance and tell the transport to broadcast the disposed instance.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::enable | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements DDS::Entity.
| virtual DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::enable_specific | ( | ) | throw (CORBA::SystemException) [protected, pure virtual] |
| void OpenDDS::DCPS::DataWriterImpl::end_coherent_changes | ( | const GroupCoherentSamples & | group_samples | ) |
Ends a coherent change set; should only be called once.
| RepoId OpenDDS::DCPS::DataWriterImpl::get_dp_id | ( | ) |
Accessor of the repository id of the domain participant.
| PublicationInstance* OpenDDS::DCPS::DataWriterImpl::get_handle_instance | ( | DDS::InstanceHandle_t | handle | ) | [protected] |
Attempt to locate an existing instance for the given handle.
| DDS::InstanceHandle_t OpenDDS::DCPS::DataWriterImpl::get_instance_handle | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements OpenDDS::DCPS::EntityImpl.
| void OpenDDS::DCPS::DataWriterImpl::get_instance_handles | ( | InstanceHandleVec & | instance_handles | ) |
| DDS::DataWriterListener_ptr OpenDDS::DCPS::DataWriterImpl::get_listener | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements DDS::DataWriter.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_liveliness_lost_status | ( | DDS::LivelinessLostStatus & | status | ) | throw (CORBA::SystemException) [virtual] |
| ACE_INLINE ACE_Recursive_Thread_Mutex& OpenDDS::DCPS::DataWriterImpl::get_lock | ( | ) | [inline] |
Accessor of the WriterDataContainer's lock.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_matched_subscription_data | ( | DDS::SubscriptionBuiltinTopicData & | subscription_data, | |
| DDS::InstanceHandle_t | subscription_handle | |||
| ) | throw (CORBA::SystemException) [virtual] |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_matched_subscriptions | ( | DDS::InstanceHandleSeq & | subscription_handles | ) | throw (CORBA::SystemException) [virtual] |
| DDS::InstanceHandle_t OpenDDS::DCPS::DataWriterImpl::get_next_handle | ( | ) |
Get an instance handle for a new instance.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_offered_deadline_missed_status | ( | DDS::OfferedDeadlineMissedStatus & | status | ) | throw (CORBA::SystemException) [virtual] |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_offered_incompatible_qos_status | ( | DDS::OfferedIncompatibleQosStatus & | status | ) | throw (CORBA::SystemException) [virtual] |
| CORBA::Long OpenDDS::DCPS::DataWriterImpl::get_priority_value | ( | const AssociationData & | ) | const [inline, private, virtual] |
Implements OpenDDS::DCPS::TransportClient.
| RepoId OpenDDS::DCPS::DataWriterImpl::get_publication_id | ( | ) |
Accessor of the repository id of this datawriter/publication.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_publication_matched_status | ( | DDS::PublicationMatchedStatus & | status | ) | throw (CORBA::SystemException) [virtual] |
| DDS::Publisher_ptr OpenDDS::DCPS::DataWriterImpl::get_publisher | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements DDS::DataWriter.
| PublisherImpl * OpenDDS::DCPS::DataWriterImpl::get_publisher_servant | ( | ) | [protected] |
Accessor of the cached publisher servant.
| virtual DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::get_qos | ( | DDS::DataWriterQos & | qos | ) | throw (CORBA::SystemException) [virtual] |
| void OpenDDS::DCPS::DataWriterImpl::get_readers | ( | IdSet & | readers | ) |
| const RepoId& OpenDDS::DCPS::DataWriterImpl::get_repo_id | ( | ) | const [inline, private, virtual] |
Implements OpenDDS::DCPS::TransportClient.
| DataSampleList OpenDDS::DCPS::DataWriterImpl::get_resend_data | ( | ) |
| DDS::Topic_ptr OpenDDS::DCPS::DataWriterImpl::get_topic | ( | ) | throw (CORBA::SystemException) [virtual] |
Implements DDS::DataWriter.
| const char * OpenDDS::DCPS::DataWriterImpl::get_topic_name | ( | ) |
Accessor of the associated topic name.
| char const * OpenDDS::DCPS::DataWriterImpl::get_type_name | ( | ) | const |
Get associated topic type name.
| DataSampleList OpenDDS::DCPS::DataWriterImpl::get_unsent_data | ( | ) |
Retrieve the unsent data from the WriteDataContainer.
| int OpenDDS::DCPS::DataWriterImpl::handle_close | ( | ACE_HANDLE | , | |
| ACE_Reactor_Mask | ||||
| ) | [virtual] |
| int OpenDDS::DCPS::DataWriterImpl::handle_timeout | ( | const ACE_Time_Value & | tv, | |
| const void * | arg | |||
| ) | [virtual] |
Handle the assert liveliness timeout.
| void OpenDDS::DCPS::DataWriterImpl::init | ( | DDS::Topic_ptr | topic, | |
| TopicImpl * | topic_servant, | |||
| const DDS::DataWriterQos & | qos, | |||
| DDS::DataWriterListener_ptr | a_listener, | |||
| const DDS::StatusMask & | mask, | |||
| OpenDDS::DCPS::DomainParticipantImpl * | participant_servant, | |||
| OpenDDS::DCPS::PublisherImpl * | publisher_servant, | |||
| DDS::DataWriter_ptr | dw_local, | |||
| OpenDDS::DCPS::DataWriterRemote_ptr | dw_remote | |||
| ) | throw (CORBA::SystemException) [virtual] |
Initialize the data members.
| DDS::DataWriterListener* 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.
| bool OpenDDS::DCPS::DataWriterImpl::lookup_instance_handles | ( | const ReaderIdSeq & | ids, | |
| DDS::InstanceHandleSeq & | hdls | |||
| ) | [private] |
Lookup the instance handles by the subscription repo ids.
| void OpenDDS::DCPS::DataWriterImpl::notify_connection_deleted | ( | ) | [virtual] |
Implements OpenDDS::DCPS::TransportSendListener.
| void OpenDDS::DCPS::DataWriterImpl::notify_publication_disconnected | ( | const ReaderIdSeq & | subids | ) | [virtual] |
Implements OpenDDS::DCPS::TransportSendListener.
| void OpenDDS::DCPS::DataWriterImpl::notify_publication_lost | ( | const DDS::InstanceHandleSeq & | handles | ) | [private] |
| void OpenDDS::DCPS::DataWriterImpl::notify_publication_lost | ( | const ReaderIdSeq & | subids | ) | [virtual] |
Implements OpenDDS::DCPS::TransportSendListener.
| void OpenDDS::DCPS::DataWriterImpl::notify_publication_reconnected | ( | const ReaderIdSeq & | subids | ) | [virtual] |
Implements OpenDDS::DCPS::TransportSendListener.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::num_samples | ( | DDS::InstanceHandle_t | handle, | |
| size_t & | size | |||
| ) |
Return the number of samples for a given instance.
| EntityImpl * OpenDDS::DCPS::DataWriterImpl::parent | ( | ) | const [virtual] |
Reimplemented from OpenDDS::DCPS::EntityImpl.
| bool OpenDDS::DCPS::DataWriterImpl::persist_data | ( | ) |
Make sent data available beyond the lifetime of this DataWriter.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::register_instance_i | ( | DDS::InstanceHandle_t & | handle, | |
| DataSample * | data, | |||
| const DDS::Time_t & | source_timestamp | |||
| ) | throw (CORBA::SystemException) |
Delegate to the WriteDataContainer to register and tell the transport to broadcast the registered instance.
| void OpenDDS::DCPS::DataWriterImpl::remove_all_associations | ( | ) |
| void OpenDDS::DCPS::DataWriterImpl::remove_associations | ( | const ReaderIdSeq & | readers, | |
| bool | callback | |||
| ) | [virtual] |
Implements OpenDDS::DCPS::TransportSendListener.
| void OpenDDS::DCPS::DataWriterImpl::reschedule_deadline | ( | ) |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::send_ack_requests | ( | AckToken & | token | ) |
Send SAMPLE_ACK messages to associated readers.
| SendControlStatus OpenDDS::DCPS::DataWriterImpl::send_control_customized | ( | const DataLinkSet_rch & | links, | |
| ACE_Message_Block * | msg, | |||
| void * | extra | |||
| ) | [virtual] |
Hook for the listener to override a normal control message with customized messages to different DataLinks.
Reimplemented from OpenDDS::DCPS::TransportSendListener.
| bool OpenDDS::DCPS::DataWriterImpl::send_liveliness | ( | const ACE_Time_Value & | now | ) | [private] |
Send the liveliness message.
| 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.
| virtual DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::set_listener | ( | DDS::DataWriterListener_ptr | a_listener, | |
| DDS::StatusMask | mask | |||
| ) | throw (CORBA::SystemException) [virtual] |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::set_qos | ( | const DDS::DataWriterQos & | qos | ) | throw (CORBA::SystemException) [virtual] |
| bool OpenDDS::DCPS::DataWriterImpl::should_ack | ( | ) | const |
Does this writer have samples to be acknowledged?
| void OpenDDS::DCPS::DataWriterImpl::unregister_all | ( | ) |
Delegate to WriteDataContainer to unregister all instances.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::unregister_instance_i | ( | DDS::InstanceHandle_t | handle, | |
| const DDS::Time_t & | source_timestamp | |||
| ) | throw (CORBA::SystemException) |
Delegate to the WriteDataContainer to unregister and tell the transport to broadcast the unregistered instance.
| 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.
| virtual void OpenDDS::DCPS::DataWriterImpl::unregistered | ( | DDS::InstanceHandle_t | instance_handle | ) | [virtual] |
This method is called when an instance is unregistered from the WriteDataContainer.
The subclass must provide the implementation to unregister the instance from its own map.
| void OpenDDS::DCPS::DataWriterImpl::update_incompatible_qos | ( | const IncompatibleQosStatus & | status | ) |
| void OpenDDS::DCPS::DataWriterImpl::update_subscription_params | ( | const RepoId & | readerId, | |
| const DDS::StringSeq & | params | |||
| ) |
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::wait_for_ack_responses | ( | const AckToken & | token | ) |
Wait for SAMPLE_ACK responses from associated readers.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::wait_for_acknowledgments | ( | const DDS::Duration_t & | max_wait | ) | throw (CORBA::SystemException) [virtual] |
| void OpenDDS::DCPS::DataWriterImpl::wait_pending | ( | ) |
Wait for pending samples to drain.
| DDS::ReturnCode_t OpenDDS::DCPS::DataWriterImpl::write | ( | DataSample * | sample, | |
| DDS::InstanceHandle_t | handle, | |||
| const DDS::Time_t & | source_timestamp, | |||
| GUIDSeq * | filter_out | |||
| ) |
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 RepoIds that should NOT get the data sample due to content filtering. |
friend class ::DDS_TEST [friend] |
Reimplemented from OpenDDS::DCPS::TransportClient.
friend class PublisherImpl [friend] |
friend class WriteDataContainer [friend] |
size_t OpenDDS::DCPS::DataWriterImpl::association_chunk_multiplier_ [protected] |
The multiplier for allocators affected by associations.
The cached available data while suspending.
bool OpenDDS::DCPS::DataWriterImpl::cancel_timer_ [private] |
The flag indicates whether the liveliness timer is scheduled and needs be cancelled.
bool OpenDDS::DCPS::DataWriterImpl::coherent_ [private] |
Flag indicating DataWriter current belongs to a coherent change set.
ACE_UINT32 OpenDDS::DCPS::DataWriterImpl::coherent_samples_ [private] |
The number of samples belonging to the current coherent change set.
The sample data container.
The data block allocator.
The domain id.
DDS::DataWriter_var OpenDDS::DCPS::DataWriterImpl::dw_local_objref_ [private] |
the object reference of the local datawriter
OpenDDS::DCPS::DataWriterRemote_var OpenDDS::DCPS::DataWriterImpl::dw_remote_objref_ [private] |
The object reference of the remote datawriter.
The datawriter listener servant.
The header data allocator.
bool OpenDDS::DCPS::DataWriterImpl::initialized_ [private] |
Flag indicates that the init() is called.
bool OpenDDS::DCPS::DataWriterImpl::is_bit_ [private] |
Flag indicates that this datawriter is a builtin topic datawriter.
CORBA::Long OpenDDS::DCPS::DataWriterImpl::last_deadline_missed_total_count_ [private] |
Total number of offered deadlines missed during last offered deadline status check.
ACE_Time_Value OpenDDS::DCPS::DataWriterImpl::last_liveliness_activity_time_ [private] |
Timestamp of last write/dispose/assert_liveliness.
DDS::DataWriterListener_var OpenDDS::DCPS::DataWriterImpl::listener_ [private] |
Used to notify the entity for relevant events.
The StatusKind bit mask indicates which status condition change can be notified by the listener of this entity.
ACE_Time_Value OpenDDS::DCPS::DataWriterImpl::liveliness_check_interval_ [private] |
The time interval for sending liveliness message.
bool OpenDDS::DCPS::DataWriterImpl::liveliness_lost_ [private] |
True if the writer failed to actively signal its liveliness within its offered liveliness period.
Status conditions.
ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DataWriterImpl::lock_ [private] |
The lock to protect the activate subscriptions and status changes.
Reimplemented from OpenDDS::DCPS::EntityImpl.
The message block allocator.
Monitor* OpenDDS::DCPS::DataWriterImpl::monitor_ [private] |
Monitor object for this entity.
size_t OpenDDS::DCPS::DataWriterImpl::n_chunks_ [protected] |
The number of chunks for the cached allocator.
DDS::OfferedDeadlineMissedStatus OpenDDS::DCPS::DataWriterImpl::offered_deadline_missed_status_ [private] |
DDS::OfferedIncompatibleQosStatus OpenDDS::DCPS::DataWriterImpl::offered_incompatible_qos_status_ [private] |
The participant servant which creats the publisher that creates this datawriter.
Periodic Monitor object for this entity.
The repository id of this datawriter/publication.
The publisher servant which creates this datawriter.
The qos policy list of this datawriter.
ACE_Reactor* OpenDDS::DCPS::DataWriterImpl::reactor_ [private] |
The orb's reactor to be used to register the liveliness timer.
IdSet OpenDDS::DCPS::DataWriterImpl::readers_ [private] |
The sequence number unique in DataWriter scope. Not used in first implementation.
The associated topic repository id.
CORBA::String_var OpenDDS::DCPS::DataWriterImpl::topic_name_ [private] |
The name of associated topic.
DDS::Topic_var OpenDDS::DCPS::DataWriterImpl::topic_objref_ [private] |
The object reference of the associated topic.
The topic servant.
CORBA::String_var OpenDDS::DCPS::DataWriterImpl::type_name_ [protected] |
The type name of associated topic.
std::auto_ptr<OfferedDeadlineWatchdog> OpenDDS::DCPS::DataWriterImpl::watchdog_ [private] |
Watchdog responsible for reporting missed offered deadlines.
ACE_Condition<ACE_SYNCH_MUTEX> OpenDDS::DCPS::DataWriterImpl::wfaCondition_ [private] |
Used to block in wait_for_acks().
ACE_SYNCH_MUTEX OpenDDS::DCPS::DataWriterImpl::wfaLock_ [private] |
Lock used for wait_for_acks() processing.
1.4.7