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


Public Types | |
| typedef std::map< PublicationId, DataSampleList > | DataSampleListMap |
Public Member Functions | |
| PublisherImpl (const ::DDS::PublisherQos &qos,::DDS::PublisherListener_ptr a_listener, DomainParticipantImpl *participant) | |
| Constructor. | |
| virtual | ~PublisherImpl (void) |
| Destructor. | |
| virtual ::DDS::DataWriter_ptr | create_datawriter (::DDS::Topic_ptr a_topic, const ::DDS::DataWriterQos &qos,::DDS::DataWriterListener_ptr a_listener) throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | delete_datawriter (::DDS::DataWriter_ptr a_datawriter) throw ( CORBA::SystemException ) |
| virtual ::DDS::DataWriter_ptr | lookup_datawriter (const char *topic_name) throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | delete_contained_entities () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | set_qos (const ::DDS::PublisherQos &qos) throw ( CORBA::SystemException ) |
| virtual void | get_qos (::DDS::PublisherQos &qos) throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | set_listener (::DDS::PublisherListener_ptr a_listener,::DDS::StatusKindMask mask) throw ( CORBA::SystemException ) |
| virtual ::DDS::PublisherListener_ptr | get_listener () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | suspend_publications () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | resume_publications () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | begin_coherent_changes () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | end_coherent_changes () throw ( CORBA::SystemException ) |
| virtual ::DDS::DomainParticipant_ptr | get_participant () throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | set_default_datawriter_qos (const ::DDS::DataWriterQos &qos) throw ( CORBA::SystemException ) |
| virtual void | get_default_datawriter_qos (::DDS::DataWriterQos &qos) throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | copy_from_topic_qos (::DDS::DataWriterQos &a_datawriter_qos, const ::DDS::TopicQos &a_topic_qos) throw ( CORBA::SystemException ) |
| virtual ::DDS::ReturnCode_t | enable () throw ( CORBA::SystemException ) |
| ACE_INLINE ACE_Recursive_Thread_Mutex & | get_pi_lock () |
| int | is_clean () const |
| ::DDS::ReturnCode_t | writer_enabled (::OpenDDS::DCPS::DataWriterRemote_ptr remote_writer,::DDS::DataWriter_ptr local_writer, const char *topic_name, RepoId topic_id) |
| void | add_associations (const ReaderAssociationSeq &readers, DataWriterImpl *writer, const ::DDS::DataWriterQos writer_qos) |
| void | remove_associations (const ReaderIdSeq &readers, const RepoId &writer) |
| ::DDS::ReturnCode_t | data_available (DataWriterImpl *writer, bool resend=false) |
| ::DDS::PublisherListener * | listener_for (::DDS::StatusKind kind) |
Private Attributes | |
| ::DDS::PublisherQos | qos_ |
| Publisher QoS policy list. | |
| ::DDS::DataWriterQos | default_datawriter_qos_ |
| Default datawriter Qos policy list. | |
| ::DDS::StatusKindMask | listener_mask_ |
| ::DDS::PublisherListener_var | listener_ |
| Used to notify the entity for relevant events. | |
| ::DDS::PublisherListener * | fast_listener_ |
| The publisher listener servant. | |
| DataWriterMap | datawriter_map_ |
| This map is used to support datawriter lookup by topic name. | |
| PublicationMap | publication_map_ |
| CoherencyGroup | group_id_ |
| Next coherency group ID to use. - NOT USED IN FIRST IMPL. | |
| std::list< CoherencyGroup > | active_coherency_ |
| Ordered list of active coherency groups. - NOT USED IN FIRST IMPL. | |
| ::DDS::DomainId_t | domain_id_ |
| Domain in which we are contained. | |
| DomainParticipantImpl * | participant_ |
| The DomainParticipant servant that owns this Publisher. | |
| CORBA::Short | suspend_depth_count_ |
| The suspend depth count. | |
| SequenceNumber | sequence_number_ |
| ACE_Time_Value | aggregation_period_start_ |
| Start of current aggregation period. - NOT USED IN FIRST IMPL. | |
| ACE_Recursive_Thread_Mutex | pi_lock_ |
| DataSampleList | available_data_list_ |
| The catched available data while suspending. | |
This class acts as a factory and container of the datawriter. It is also an intermedia class which delegates the data from datawriter to transport for sending.
See the DDS specification, OMG formal/04-12-02, for a description of the interface this class is implementing.
| typedef std::map<PublicationId, DataSampleList> OpenDDS::DCPS::PublisherImpl::DataSampleListMap |
| OpenDDS::DCPS::PublisherImpl::PublisherImpl | ( | const ::DDS::PublisherQos & | qos, | |
| ::DDS::PublisherListener_ptr | a_listener, | |||
| DomainParticipantImpl * | participant | |||
| ) |
Constructor.
| OpenDDS::DCPS::PublisherImpl::~PublisherImpl | ( | void | ) | [virtual] |
Destructor.
| void OpenDDS::DCPS::PublisherImpl::add_associations | ( | const ReaderAssociationSeq & | readers, | |
| DataWriterImpl * | writer, | |||
| const ::DDS::DataWriterQos | writer_qos | |||
| ) |
This method is called by datawriter to tell transport to add new subscriptions with the datawriter.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::begin_coherent_changes | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::copy_from_topic_qos | ( | ::DDS::DataWriterQos & | a_datawriter_qos, | |
| const ::DDS::TopicQos & | a_topic_qos | |||
| ) | throw ( CORBA::SystemException ) |
| DDS::DataWriter_ptr OpenDDS::DCPS::PublisherImpl::create_datawriter | ( | ::DDS::Topic_ptr | a_topic, | |
| const ::DDS::DataWriterQos & | qos, | |||
| ::DDS::DataWriterListener_ptr | a_listener | |||
| ) | throw ( CORBA::SystemException ) |
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::data_available | ( | DataWriterImpl * | writer, | |
| bool | resend = false | |||
| ) |
This is called by datawriter to notify the publisher to collect the available data from the datawriter for sending.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::delete_contained_entities | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::delete_datawriter | ( | ::DDS::DataWriter_ptr | a_datawriter | ) | throw ( CORBA::SystemException ) |
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::enable | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Entity.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::end_coherent_changes | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| void OpenDDS::DCPS::PublisherImpl::get_default_datawriter_qos | ( | ::DDS::DataWriterQos & | qos | ) | throw ( CORBA::SystemException ) [virtual] |
| DDS::PublisherListener_ptr OpenDDS::DCPS::PublisherImpl::get_listener | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| DDS::DomainParticipant_ptr OpenDDS::DCPS::PublisherImpl::get_participant | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| ACE_INLINE ACE_Recursive_Thread_Mutex& OpenDDS::DCPS::PublisherImpl::get_pi_lock | ( | ) | [inline] |
| void OpenDDS::DCPS::PublisherImpl::get_qos | ( | ::DDS::PublisherQos & | qos | ) | throw ( CORBA::SystemException ) [virtual] |
| int OpenDDS::DCPS::PublisherImpl::is_clean | ( | ) | const |
This method is not defined in the IDL and is defined for internal use. Check if there is any datawriter associated with this publisher.
| DDS::PublisherListener * OpenDDS::DCPS::PublisherImpl::listener_for | ( | ::DDS::StatusKind | kind | ) |
This is used to retrieve the listener for a certain status change. If this publisher has a registered listener and the status kind is in the listener mask then the listener is returned. Otherwise, the query for listener is propagated up to the factory/DomainParticipant.
| DDS::DataWriter_ptr OpenDDS::DCPS::PublisherImpl::lookup_datawriter | ( | const char * | topic_name | ) | throw ( CORBA::SystemException ) |
| void OpenDDS::DCPS::PublisherImpl::remove_associations | ( | const ReaderIdSeq & | readers, | |
| const RepoId & | writer | |||
| ) |
This method is called by datawriter to tell transport to remove subscriptions with the datawriter.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::resume_publications | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::set_default_datawriter_qos | ( | const ::DDS::DataWriterQos & | qos | ) | throw ( CORBA::SystemException ) |
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::set_listener | ( | ::DDS::PublisherListener_ptr | a_listener, | |
| ::DDS::StatusKindMask | mask | |||
| ) | throw ( CORBA::SystemException ) |
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::set_qos | ( | const ::DDS::PublisherQos & | qos | ) | throw ( CORBA::SystemException ) |
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::suspend_publications | ( | ) | throw ( CORBA::SystemException ) |
Implements DDS::Publisher.
| DDS::ReturnCode_t OpenDDS::DCPS::PublisherImpl::writer_enabled | ( | ::OpenDDS::DCPS::DataWriterRemote_ptr | remote_writer, | |
| ::DDS::DataWriter_ptr | local_writer, | |||
| const char * | topic_name, | |||
| RepoId | topic_id | |||
| ) |
This method is called when the datawriter created by this publisher was enabled. It will notify the DCPSInfo that a new datawriter/publication is associated with the topic.
Load the publication into the repository and get the publication_id_ in return.
std::list<CoherencyGroup> OpenDDS::DCPS::PublisherImpl::active_coherency_ [private] |
Ordered list of active coherency groups. - NOT USED IN FIRST IMPL.
ACE_Time_Value OpenDDS::DCPS::PublisherImpl::aggregation_period_start_ [private] |
Start of current aggregation period. - NOT USED IN FIRST IMPL.
The catched available data while suspending.
This map is used to support datawriter lookup by topic name.
Default datawriter Qos policy list.
Domain in which we are contained.
The publisher listener servant.
Next coherency group ID to use. - NOT USED IN FIRST IMPL.
::DDS::PublisherListener_var OpenDDS::DCPS::PublisherImpl::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.
The DomainParticipant servant that owns this Publisher.
ACE_Recursive_Thread_Mutex OpenDDS::DCPS::PublisherImpl::pi_lock_ [mutable, private] |
The recursive lock to protect datawriter map and suspend count. It also projects the TransportInterface (it must be held when calling any TransportInterface method).
This map is used to support datawriter lookup by datawriter repository id.
::DDS::PublisherQos OpenDDS::DCPS::PublisherImpl::qos_ [private] |
Publisher QoS policy list.
Unique sequence number used when the scope_access = GROUP.
CORBA::Short OpenDDS::DCPS::PublisherImpl::suspend_depth_count_ [private] |
The suspend depth count.
1.4.7