OpenDDS::DCPS::DataReaderImpl Class Reference

Implements the DDS::DataReader interface. More...

#include <DataReaderImpl.h>

Inheritance diagram for OpenDDS::DCPS::DataReaderImpl:

Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::DataReaderImpl:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::map< ::DDS::InstanceHandle_t,
SubscriptionInstance * > 
SubscriptionInstanceMapType

Public Member Functions

 DataReaderImpl (void)
virtual ~DataReaderImpl (void)
virtual void add_associations (::OpenDDS::DCPS::RepoId yourId, const OpenDDS::DCPS::WriterAssociationSeq &writers) throw ( CORBA::SystemException )
virtual void remove_associations (const OpenDDS::DCPS::WriterIdSeq &writers,::CORBA::Boolean callback) throw ( CORBA::SystemException )
virtual void update_incompatible_qos (const OpenDDS::DCPS::IncompatibleQosStatus &status) throw ( CORBA::SystemException )
::DDS::DataReaderListenerlistener_for (::DDS::StatusKind kind)
virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg)
 Handle the assert liveliness timeout.
void writer_became_alive (PublicationId writer_id, const ACE_Time_Value &when, WriterInfo::WriterState &state)
void writer_became_dead (PublicationId writer_id, const ACE_Time_Value &when, WriterInfo::WriterState &state)
void writer_removed (PublicationId writer_id, WriterInfo::WriterState &state)
virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask)
void cleanup ()
virtual void init (TopicImpl *a_topic, const ::DDS::DataReaderQos &qos,::DDS::DataReaderListener_ptr a_listener, DomainParticipantImpl *participant, SubscriberImpl *subscriber,::DDS::DataReader_ptr dr_objref,::OpenDDS::DCPS::DataReaderRemote_ptr dr_remote_objref) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t delete_contained_entities () throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_qos (const ::DDS::DataReaderQos &qos) throw ( CORBA::SystemException )
virtual void get_qos (::DDS::DataReaderQos &qos) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_listener (::DDS::DataReaderListener_ptr a_listener,::DDS::StatusKindMask mask) throw ( CORBA::SystemException )
virtual ::DDS::DataReaderListener_ptr get_listener () throw ( CORBA::SystemException )
virtual ::DDS::TopicDescription_ptr get_topicdescription () throw ( CORBA::SystemException )
virtual ::DDS::Subscriber_ptr get_subscriber () throw ( CORBA::SystemException )
virtual ::DDS::SampleRejectedStatus get_sample_rejected_status () throw ( CORBA::SystemException )
virtual ::DDS::LivelinessChangedStatus get_liveliness_changed_status () throw ( CORBA::SystemException )
virtual ::DDS::RequestedDeadlineMissedStatus get_requested_deadline_missed_status () throw ( CORBA::SystemException )
virtual ::DDS::RequestedIncompatibleQosStatusget_requested_incompatible_qos_status () throw ( CORBA::SystemException )
virtual ::DDS::SubscriptionMatchStatus get_subscription_match_status () throw ( CORBA::SystemException )
virtual ::DDS::SampleLostStatus get_sample_lost_status () throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t wait_for_historical_data (const ::DDS::Duration_t &max_wait) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t get_matched_publications (::DDS::InstanceHandleSeq &publication_handles) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t get_matched_publication_data (::DDS::PublicationBuiltinTopicData &publication_data,::DDS::InstanceHandle_t publication_handle) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t enable () throw ( CORBA::SystemException )
void writer_activity (PublicationId writer_id)
 update liveliness info for this writer.
virtual void data_received (const ReceivedDataSample &sample)
 process a message that has been received - could be control or a data sample.
RepoId get_subscription_id () const
void set_subscription_id (RepoId subscription_id)
::DDS::DataReader_ptr get_dr_obj_ref ()
char * get_topic_name () const
bool have_sample_states (::DDS::SampleStateMask sample_states) const
bool have_view_states (::DDS::ViewStateMask view_states) const
bool have_instance_states (::DDS::InstanceStateMask instance_states) const
virtual void dds_demarshal (const ReceivedDataSample &sample)=0
virtual void dispose (const ReceivedDataSample &sample)
virtual void unregister (const ReceivedDataSample &sample)
CORBA::Long get_depth () const
size_t get_n_chunks () const
void liveliness_lost ()
void remove_all_associations ()
void notify_subscription_disconnected (const WriterIdSeq &pubids)
void notify_subscription_reconnected (const WriterIdSeq &pubids)
void notify_subscription_lost (const WriterIdSeq &pubids)
void notify_connection_deleted ()
void notify_liveliness_change ()
bool is_bit () const
virtual DDS::ReturnCode_t auto_return_loan (void *seq)=0
virtual int num_zero_copies ()
virtual void dec_ref_data_element (ReceivedDataElement *r)=0
void release_instance (::DDS::InstanceHandle_t handle)
 Release the instance with the handle.

Protected Types

typedef ACE_Reverse_Lock<
ACE_Recursive_Thread_Mutex > 
Reverse_Lock_t

Protected Member Functions

SubscriberImplget_subscriber_servant ()
void post_read_or_take ()
virtual ::DDS::ReturnCode_t enable_specific ()=0 throw ( CORBA::SystemException )
void sample_info (::DDS::SampleInfoSeq &info_seq, size_t start_idx, size_t count, ReceivedDataElement *ptr)
void sample_info (::DDS::SampleInfo &sample_info, ReceivedDataElement *ptr)
CORBA::Long total_samples () const
void set_sample_lost_status (const ::DDS::SampleLostStatus &status)
void set_sample_rejected_status (const ::DDS::SampleRejectedStatus &status)
SubscriptionInstanceget_handle_instance (::DDS::InstanceHandle_t handle)
::DDS::InstanceHandle_t get_next_handle ()
virtual void release_instance_i (::DDS::InstanceHandle_t handle)=0

Protected Attributes

SubscriptionInstanceMapType instances_
ReceivedDataAllocatorrd_allocator_
::DDS::DataReaderQos qos_
::DDS::SampleRejectedStatus sample_rejected_status_
::DDS::SampleLostStatus sample_lost_status_
ACE_Recursive_Thread_Mutex sample_lock_
 lock protecting sample container as well as statuses.
Reverse_Lock_t reverse_sample_lock_
::DDS::InstanceHandle_t next_handle_
 The instance handle for the next new instance.

Private Types

typedef std::map< RepoId,
DDS::InstanceHandle_t, GUID_tKeyLessThan > 
RepoIdToHandleMap
typedef std::map< PublicationId,
WriterInfo, GUID_tKeyLessThan > 
WriterMapType

Private Member Functions

void notify_subscription_lost (const ::DDS::InstanceHandleSeq &handles)
bool bit_lookup_instance_handles (const WriterIdSeq &ids,::DDS::InstanceHandleSeq &hdls)
bool cache_lookup_instance_handles (const WriterIdSeq &ids,::DDS::InstanceHandleSeq &hdls)
bool data_expired (DataSampleHeader const &header) const
 Check if the received data sample expired.

Private Attributes

TopicImpltopic_servant_
::DDS::TopicDescription_var topic_desc_
::DDS::StatusKindMask listener_mask_
::DDS::DataReaderListener_var listener_
::DDS::DataReaderListenerfast_listener_
DomainParticipantImplparticipant_servant_
::DDS::DomainId_t domain_id_
SubscriberImplsubscriber_servant_
DataReaderRemote_var dr_remote_objref_
::DDS::DataReader_var dr_local_objref_
RepoId subscription_id_
CORBA::Long depth_
size_t n_chunks_
ACE_Recursive_Thread_Mutex publication_handle_lock_
RepoIdToHandleMap id_to_handle_map_
::DDS::LivelinessChangedStatus liveliness_changed_status_
::DDS::RequestedDeadlineMissedStatus requested_deadline_missed_status_
::DDS::RequestedIncompatibleQosStatus requested_incompatible_qos_status_
::DDS::SubscriptionMatchStatus subscription_match_status_
SubscriptionLostStatus subscription_lost_status_
ACE_Reactor * reactor_
ACE_Time_Value liveliness_lease_duration_
long liveliness_timer_id_
 liveliness timer id; -1 if no timer is set
CORBA::Long last_deadline_missed_total_count_
std::auto_ptr< RequestedDeadlineWatchdogwatchdog_
bool is_bit_
bool initialized_
 Flag indicates that the init() is called.
WriterMapType writers_
 publications writing to this reader.

Friends

class WriterInfo
class ::DDS_TEST

Detailed Description

Implements the DDS::DataReader interface.

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 datareader which is specific to the data-type associated with the topic.


Member Typedef Documentation

typedef std::map<RepoId, DDS::InstanceHandle_t, GUID_tKeyLessThan> OpenDDS::DCPS::DataReaderImpl::RepoIdToHandleMap [private]

typedef ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex> OpenDDS::DCPS::DataReaderImpl::Reverse_Lock_t [protected]

typedef std::map< ::DDS::InstanceHandle_t, SubscriptionInstance*> OpenDDS::DCPS::DataReaderImpl::SubscriptionInstanceMapType

typedef std::map<PublicationId, WriterInfo, GUID_tKeyLessThan> OpenDDS::DCPS::DataReaderImpl::WriterMapType [private]


Constructor & Destructor Documentation

OpenDDS::DCPS::DataReaderImpl::DataReaderImpl ( void   ) 

OpenDDS::DCPS::DataReaderImpl::~DataReaderImpl ( void   )  [virtual]


Member Function Documentation

void OpenDDS::DCPS::DataReaderImpl::add_associations ( ::OpenDDS::DCPS::RepoId  yourId,
const OpenDDS::DCPS::WriterAssociationSeq writers 
) throw ( CORBA::SystemException ) [virtual]

virtual DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::auto_return_loan ( void *  seq  )  [pure virtual]

This method provides virtual access to type specific code that is used when loans are automatically returned. The destructor of the sequence supporing zero-copy read calls this method on the datareader that provided the loan.

Parameters:
seq - The sequence of loaned values.
Returns:
Always RETCODE_OK.
thows NONE.

bool OpenDDS::DCPS::DataReaderImpl::bit_lookup_instance_handles ( const WriterIdSeq ids,
::DDS::InstanceHandleSeq hdls 
) [private]

Lookup the instance handles by the publication repo ids via the bit datareader.

bool OpenDDS::DCPS::DataReaderImpl::cache_lookup_instance_handles ( const WriterIdSeq ids,
::DDS::InstanceHandleSeq hdls 
) [private]

Lookup the cache to get the instance handle by the publication repo ids.

void OpenDDS::DCPS::DataReaderImpl::cleanup (  ) 

cleanup the DataWriter.

bool OpenDDS::DCPS::DataReaderImpl::data_expired ( DataSampleHeader const &  header  )  const [private]

Check if the received data sample expired.

Note:
Expiration will only occur if the application configured a finite duration in the Topic's LIFESPAN QoS policy.

void OpenDDS::DCPS::DataReaderImpl::data_received ( const ReceivedDataSample sample  )  [virtual]

process a message that has been received - could be control or a data sample.

Implements OpenDDS::DCPS::TransportReceiveListener.

virtual void OpenDDS::DCPS::DataReaderImpl::dds_demarshal ( const ReceivedDataSample sample  )  [pure virtual]

virtual void OpenDDS::DCPS::DataReaderImpl::dec_ref_data_element ( ReceivedDataElement r  )  [pure virtual]

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::delete_contained_entities (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

void OpenDDS::DCPS::DataReaderImpl::dispose ( const ReceivedDataSample sample  )  [virtual]

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::enable (  )  throw ( CORBA::SystemException )

Implements DDS::Entity.

virtual ::DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::enable_specific (  )  throw ( CORBA::SystemException ) [protected, pure virtual]

CORBA::Long OpenDDS::DCPS::DataReaderImpl::get_depth (  )  const [inline]

ACE_INLINE::DDS::DataReader_ptr OpenDDS::DCPS::DataReaderImpl::get_dr_obj_ref (  ) 

SubscriptionInstance * OpenDDS::DCPS::DataReaderImpl::get_handle_instance ( ::DDS::InstanceHandle_t  handle  )  [protected]

DDS::DataReaderListener_ptr OpenDDS::DCPS::DataReaderImpl::get_listener (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::LivelinessChangedStatus OpenDDS::DCPS::DataReaderImpl::get_liveliness_changed_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::get_matched_publication_data ( ::DDS::PublicationBuiltinTopicData publication_data,
::DDS::InstanceHandle_t  publication_handle 
) throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::get_matched_publications ( ::DDS::InstanceHandleSeq publication_handles  )  throw ( CORBA::SystemException )

size_t OpenDDS::DCPS::DataReaderImpl::get_n_chunks (  )  const [inline]

DDS::InstanceHandle_t OpenDDS::DCPS::DataReaderImpl::get_next_handle (  )  [protected]

Get an instance handle for a new instance. This method should be called under the protection of a lock to ensure that the handle is unique for the container.

void OpenDDS::DCPS::DataReaderImpl::get_qos ( ::DDS::DataReaderQos qos  )  throw ( CORBA::SystemException ) [virtual]

DDS::RequestedDeadlineMissedStatus OpenDDS::DCPS::DataReaderImpl::get_requested_deadline_missed_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::RequestedIncompatibleQosStatus * OpenDDS::DCPS::DataReaderImpl::get_requested_incompatible_qos_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::SampleLostStatus OpenDDS::DCPS::DataReaderImpl::get_sample_lost_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::SampleRejectedStatus OpenDDS::DCPS::DataReaderImpl::get_sample_rejected_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

DDS::Subscriber_ptr OpenDDS::DCPS::DataReaderImpl::get_subscriber (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

SubscriberImpl * OpenDDS::DCPS::DataReaderImpl::get_subscriber_servant (  )  [protected]

RepoId OpenDDS::DCPS::DataReaderImpl::get_subscription_id (  )  const

DDS::SubscriptionMatchStatus OpenDDS::DCPS::DataReaderImpl::get_subscription_match_status (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

char * OpenDDS::DCPS::DataReaderImpl::get_topic_name (  )  const

DDS::TopicDescription_ptr OpenDDS::DCPS::DataReaderImpl::get_topicdescription (  )  throw ( CORBA::SystemException )

Implements DDS::DataReader.

int OpenDDS::DCPS::DataReaderImpl::handle_close ( ACE_HANDLE  ,
ACE_Reactor_Mask   
) [virtual]

int OpenDDS::DCPS::DataReaderImpl::handle_timeout ( const ACE_Time_Value &  tv,
const void *  arg 
) [virtual]

Handle the assert liveliness timeout.

bool OpenDDS::DCPS::DataReaderImpl::have_instance_states ( ::DDS::InstanceStateMask  instance_states  )  const

bool OpenDDS::DCPS::DataReaderImpl::have_sample_states ( ::DDS::SampleStateMask  sample_states  )  const

bool OpenDDS::DCPS::DataReaderImpl::have_view_states ( ::DDS::ViewStateMask  view_states  )  const

void OpenDDS::DCPS::DataReaderImpl::init ( TopicImpl a_topic,
const ::DDS::DataReaderQos qos,
::DDS::DataReaderListener_ptr  a_listener,
DomainParticipantImpl participant,
SubscriberImpl subscriber,
::DDS::DataReader_ptr  dr_objref,
::OpenDDS::DCPS::DataReaderRemote_ptr  dr_remote_objref 
) throw ( CORBA::SystemException ) [virtual]

bool OpenDDS::DCPS::DataReaderImpl::is_bit (  )  const

DDS::DataReaderListener * OpenDDS::DCPS::DataReaderImpl::listener_for ( ::DDS::StatusKind  kind  ) 

This is used to retrieve the listener for a certain status change. If this datareader 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/subscriber.

void OpenDDS::DCPS::DataReaderImpl::liveliness_lost (  ) 

void OpenDDS::DCPS::DataReaderImpl::notify_connection_deleted (  ) 

void OpenDDS::DCPS::DataReaderImpl::notify_liveliness_change (  ) 

void OpenDDS::DCPS::DataReaderImpl::notify_subscription_disconnected ( const WriterIdSeq pubids  ) 

void OpenDDS::DCPS::DataReaderImpl::notify_subscription_lost ( const ::DDS::InstanceHandleSeq handles  )  [private]

void OpenDDS::DCPS::DataReaderImpl::notify_subscription_lost ( const WriterIdSeq pubids  ) 

void OpenDDS::DCPS::DataReaderImpl::notify_subscription_reconnected ( const WriterIdSeq pubids  ) 

int OpenDDS::DCPS::DataReaderImpl::num_zero_copies (  )  [virtual]

This method is used for a precondition check of delete_datareader.

Returns:
the number of outstanding zero-copy samples loaned out.

void OpenDDS::DCPS::DataReaderImpl::post_read_or_take (  )  [protected]

void OpenDDS::DCPS::DataReaderImpl::release_instance ( ::DDS::InstanceHandle_t  handle  ) 

Release the instance with the handle.

virtual void OpenDDS::DCPS::DataReaderImpl::release_instance_i ( ::DDS::InstanceHandle_t  handle  )  [protected, pure virtual]

void OpenDDS::DCPS::DataReaderImpl::remove_all_associations (  ) 

void OpenDDS::DCPS::DataReaderImpl::remove_associations ( const OpenDDS::DCPS::WriterIdSeq writers,
::CORBA::Boolean  callback 
) throw ( CORBA::SystemException ) [virtual]

void OpenDDS::DCPS::DataReaderImpl::sample_info ( ::DDS::SampleInfo sample_info,
ReceivedDataElement ptr 
) [protected]

void OpenDDS::DCPS::DataReaderImpl::sample_info ( ::DDS::SampleInfoSeq info_seq,
size_t  start_idx,
size_t  count,
ReceivedDataElement ptr 
) [protected]

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::set_listener ( ::DDS::DataReaderListener_ptr  a_listener,
::DDS::StatusKindMask  mask 
) throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::set_qos ( const ::DDS::DataReaderQos qos  )  throw ( CORBA::SystemException )

void OpenDDS::DCPS::DataReaderImpl::set_sample_lost_status ( const ::DDS::SampleLostStatus status  )  [protected]

void OpenDDS::DCPS::DataReaderImpl::set_sample_rejected_status ( const ::DDS::SampleRejectedStatus status  )  [protected]

void OpenDDS::DCPS::DataReaderImpl::set_subscription_id ( RepoId  subscription_id  ) 

CORBA::Long OpenDDS::DCPS::DataReaderImpl::total_samples (  )  const [protected]

void OpenDDS::DCPS::DataReaderImpl::unregister ( const ReceivedDataSample sample  )  [virtual]

void OpenDDS::DCPS::DataReaderImpl::update_incompatible_qos ( const OpenDDS::DCPS::IncompatibleQosStatus status  )  throw ( CORBA::SystemException ) [virtual]

DDS::ReturnCode_t OpenDDS::DCPS::DataReaderImpl::wait_for_historical_data ( const ::DDS::Duration_t max_wait  )  throw ( CORBA::SystemException )

void OpenDDS::DCPS::DataReaderImpl::writer_activity ( PublicationId  writer_id  ) 

update liveliness info for this writer.

void OpenDDS::DCPS::DataReaderImpl::writer_became_alive ( PublicationId  writer_id,
const ACE_Time_Value &  when,
WriterInfo::WriterState state 
)

tell instances when a DataWriter transitions to being alive The writer state is inout parameter, it has to be set ALIVE before handle_timeout is called since some subroutine use the state.

void OpenDDS::DCPS::DataReaderImpl::writer_became_dead ( PublicationId  writer_id,
const ACE_Time_Value &  when,
WriterInfo::WriterState state 
)

tell instances when a DataWriter transitions to DEAD The writer state is inout parameter, the state is set to DEAD when it returns.

void OpenDDS::DCPS::DataReaderImpl::writer_removed ( PublicationId  writer_id,
WriterInfo::WriterState state 
)

tell instance when a DataWriter is removed. The liveliness status need update.


Friends And Related Function Documentation

friend class ::DDS_TEST [friend]

friend class WriterInfo [friend]


Member Data Documentation

CORBA::Long OpenDDS::DCPS::DataReaderImpl::depth_ [private]

::DDS::DomainId_t OpenDDS::DCPS::DataReaderImpl::domain_id_ [private]

::DDS::DataReader_var OpenDDS::DCPS::DataReaderImpl::dr_local_objref_ [private]

DataReaderRemote_var OpenDDS::DCPS::DataReaderImpl::dr_remote_objref_ [private]

::DDS::DataReaderListener* OpenDDS::DCPS::DataReaderImpl::fast_listener_ [private]

RepoIdToHandleMap OpenDDS::DCPS::DataReaderImpl::id_to_handle_map_ [private]

bool OpenDDS::DCPS::DataReaderImpl::initialized_ [private]

Flag indicates that the init() is called.

SubscriptionInstanceMapType OpenDDS::DCPS::DataReaderImpl::instances_ [mutable, protected]

bool OpenDDS::DCPS::DataReaderImpl::is_bit_ [private]

Flag indicates that this datareader is a builtin topic datareader.

CORBA::Long OpenDDS::DCPS::DataReaderImpl::last_deadline_missed_total_count_ [private]

::DDS::DataReaderListener_var OpenDDS::DCPS::DataReaderImpl::listener_ [private]

::DDS::StatusKindMask OpenDDS::DCPS::DataReaderImpl::listener_mask_ [private]

::DDS::LivelinessChangedStatus OpenDDS::DCPS::DataReaderImpl::liveliness_changed_status_ [private]

ACE_Time_Value OpenDDS::DCPS::DataReaderImpl::liveliness_lease_duration_ [private]

The time interval for checking liveliness. TBD: Should this be initialized with DDS::DURATION_INFINITY_SEC and DDS::DURATION_INFINITY_NSEC instead of ACE_Time_Value::zero to be consistent with default duration qos ? Or should we simply use the ACE_Time_Value::zero to indicate the INFINITY duration ?

long OpenDDS::DCPS::DataReaderImpl::liveliness_timer_id_ [private]

liveliness timer id; -1 if no timer is set

size_t OpenDDS::DCPS::DataReaderImpl::n_chunks_ [private]

::DDS::InstanceHandle_t OpenDDS::DCPS::DataReaderImpl::next_handle_ [protected]

The instance handle for the next new instance.

DomainParticipantImpl* OpenDDS::DCPS::DataReaderImpl::participant_servant_ [private]

ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DataReaderImpl::publication_handle_lock_ [private]

::DDS::DataReaderQos OpenDDS::DCPS::DataReaderImpl::qos_ [protected]

ReceivedDataAllocator* OpenDDS::DCPS::DataReaderImpl::rd_allocator_ [protected]

ACE_Reactor* OpenDDS::DCPS::DataReaderImpl::reactor_ [private]

The orb's reactor to be used to register the liveliness timer.

::DDS::RequestedDeadlineMissedStatus OpenDDS::DCPS::DataReaderImpl::requested_deadline_missed_status_ [private]

::DDS::RequestedIncompatibleQosStatus OpenDDS::DCPS::DataReaderImpl::requested_incompatible_qos_status_ [private]

Reverse_Lock_t OpenDDS::DCPS::DataReaderImpl::reverse_sample_lock_ [protected]

ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DataReaderImpl::sample_lock_ [protected]

lock protecting sample container as well as statuses.

::DDS::SampleLostStatus OpenDDS::DCPS::DataReaderImpl::sample_lost_status_ [protected]

::DDS::SampleRejectedStatus OpenDDS::DCPS::DataReaderImpl::sample_rejected_status_ [protected]

SubscriberImpl* OpenDDS::DCPS::DataReaderImpl::subscriber_servant_ [private]

RepoId OpenDDS::DCPS::DataReaderImpl::subscription_id_ [private]

SubscriptionLostStatus OpenDDS::DCPS::DataReaderImpl::subscription_lost_status_ [private]

Todo:
The subscription_lost_status_ and subscription_reconnecting_status_ are left here for future use when we add get_subscription_lost_status() and get_subscription_reconnecting_status() methods.

::DDS::SubscriptionMatchStatus OpenDDS::DCPS::DataReaderImpl::subscription_match_status_ [private]

::DDS::TopicDescription_var OpenDDS::DCPS::DataReaderImpl::topic_desc_ [private]

TopicImpl* OpenDDS::DCPS::DataReaderImpl::topic_servant_ [private]

std::auto_ptr<RequestedDeadlineWatchdog> OpenDDS::DCPS::DataReaderImpl::watchdog_ [private]

Watchdog responsible for reporting missed offered deadlines.

WriterMapType OpenDDS::DCPS::DataReaderImp