OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Public Attributes | List of all members
OpenDDS::DCPS::SubscriptionInstance Class Reference

Struct that has information about an instance and the instance sample list. More...

#include <SubscriptionInstance.h>

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

Public Member Functions

 SubscriptionInstance (const DataReaderImpl_rch &reader, const DDS::DataReaderQos &qos, ACE_Recursive_Thread_Mutex &lock, DDS::InstanceHandle_t handle, bool owns_handle)
 
virtual ~SubscriptionInstance ()
 
bool matches (CORBA::ULong sample_states, CORBA::ULong view_states, CORBA::ULong instance_states) const
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Public Attributes

const InstanceState_rch instance_state_
 Instance state for this instance. More...
 
SequenceNumber last_sequence_
 Sequence number of the move recent data sample received. More...
 
ReceivedDataElementList rcvd_samples_
 Data sample(s) in this instance. More...
 
CORBA::ULong read_sample_count_
 
CORBA::ULong not_read_sample_count_
 
CORBA::ULong sample_states_
 
unique_ptr< ReceivedDataStrategyrcvd_strategy_
 ReceivedDataElementList strategy. More...
 
const DDS::InstanceHandle_t instance_handle_
 The instance handle for the registered object. More...
 
const bool owns_handle_
 
MonotonicTimePoint last_sample_tv_
 
MonotonicTimePoint cur_sample_tv_
 
MonotonicTimePoint deadline_
 
MonotonicTimePoint last_accepted_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Detailed Description

Struct that has information about an instance and the instance sample list.

Definition at line 36 of file SubscriptionInstance.h.

Constructor & Destructor Documentation

◆ SubscriptionInstance()

OpenDDS::DCPS::SubscriptionInstance::SubscriptionInstance ( const DataReaderImpl_rch reader,
const DDS::DataReaderQos qos,
ACE_Recursive_Thread_Mutex lock,
DDS::InstanceHandle_t  handle,
bool  owns_handle 
)

Definition at line 17 of file SubscriptionInstance.cpp.

References ACE_ERROR, ACE_TEXT(), DDS::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, DDS::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS, DDS::DataReaderQos::destination_order, DDS::DestinationOrderQosPolicy::kind, LM_ERROR, rcvd_samples_, and rcvd_strategy_.

22  : instance_state_(make_rch<InstanceState>(ref(reader), ref(lock), handle))
26  , sample_states_(0)
27  , instance_handle_(handle)
28  , owns_handle_(owns_handle)
29 {
30  switch (qos.destination_order.kind) {
32  rcvd_strategy_.reset(new ReceptionDataStrategy(rcvd_samples_));
33  break;
34 
36  rcvd_strategy_.reset(new SourceDataStrategy(rcvd_samples_));
37  break;
38  }
39 
40  if (!rcvd_strategy_) {
41  ACE_ERROR((LM_ERROR,
42  ACE_TEXT("(%P|%t) ERROR: SubscriptionInstance: ")
43  ACE_TEXT("unable to allocate ReceiveDataStrategy!\n")));
44  }
45 }
#define ACE_ERROR(X)
ReceivedDataElementList rcvd_samples_
Data sample(s) in this instance.
DestinationOrderQosPolicy destination_order
reference_wrapper< T > ref(T &r)
Definition: RcHandle_T.h:237
const DDS::InstanceHandle_t instance_handle_
The instance handle for the registered object.
const InstanceState_rch instance_state_
Instance state for this instance.
DestinationOrderQosPolicyKind kind
unique_ptr< ReceivedDataStrategy > rcvd_strategy_
ReceivedDataElementList strategy.
ACE_TEXT("TCP_Factory")

◆ ~SubscriptionInstance()

OpenDDS::DCPS::SubscriptionInstance::~SubscriptionInstance ( )
virtual

Definition at line 47 of file SubscriptionInstance.cpp.

References OpenDDS::DCPS::InstanceState::data_reader(), instance_handle_, instance_state_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), and owns_handle_.

48 {
49  if (owns_handle_) {
50  const RcHandle<DataReaderImpl> reader = instance_state_->data_reader().lock();
51  if (reader) {
52  reader->return_handle(instance_handle_);
53  }
54  }
55 }
RcHandle< T > lock() const
Definition: RcObject.h:188
const DDS::InstanceHandle_t instance_handle_
The instance handle for the registered object.
const InstanceState_rch instance_state_
Instance state for this instance.
WeakRcHandle< DataReaderImpl > data_reader() const

Member Function Documentation

◆ matches()

bool OpenDDS::DCPS::SubscriptionInstance::matches ( CORBA::ULong  sample_states,
CORBA::ULong  view_states,
CORBA::ULong  instance_states 
) const

Definition at line 57 of file SubscriptionInstance.cpp.

References instance_state_, OpenDDS::DCPS::InstanceState::match(), OpenDDS::DCPS::ReceivedDataElementList::matches(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and rcvd_samples_.

58 {
60 }
ReceivedDataElementList rcvd_samples_
Data sample(s) in this instance.
bool match(DDS::ViewStateMask view, DDS::InstanceStateMask inst) const
const InstanceState_rch instance_state_
Instance state for this instance.
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long in ::DDS::SampleStateMask in ::DDS::ViewStateMask view_states
Definition: IDLTemplate.txt:66
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long in ::DDS::SampleStateMask sample_states
Definition: IDLTemplate.txt:66
bool matches(CORBA::ULong sample_states) const
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long in ::DDS::SampleStateMask in ::DDS::ViewStateMask in ::DDS::InstanceStateMask instance_states
Definition: IDLTemplate.txt:66

Member Data Documentation

◆ cur_sample_tv_

MonotonicTimePoint OpenDDS::DCPS::SubscriptionInstance::cur_sample_tv_

◆ deadline_

MonotonicTimePoint OpenDDS::DCPS::SubscriptionInstance::deadline_

◆ instance_handle_

const DDS::InstanceHandle_t OpenDDS::DCPS::SubscriptionInstance::instance_handle_

◆ instance_state_

const InstanceState_rch OpenDDS::DCPS::SubscriptionInstance::instance_state_

◆ last_accepted_

MonotonicTimePoint OpenDDS::DCPS::SubscriptionInstance::last_accepted_

◆ last_sample_tv_

MonotonicTimePoint OpenDDS::DCPS::SubscriptionInstance::last_sample_tv_

◆ last_sequence_

SequenceNumber OpenDDS::DCPS::SubscriptionInstance::last_sequence_

Sequence number of the move recent data sample received.

Definition at line 52 of file SubscriptionInstance.h.

Referenced by OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::finish_store_instance_data().

◆ not_read_sample_count_

CORBA::ULong OpenDDS::DCPS::SubscriptionInstance::not_read_sample_count_

Definition at line 58 of file SubscriptionInstance.h.

◆ owns_handle_

const bool OpenDDS::DCPS::SubscriptionInstance::owns_handle_

Definition at line 67 of file SubscriptionInstance.h.

Referenced by ~SubscriptionInstance().

◆ rcvd_samples_

ReceivedDataElementList OpenDDS::DCPS::SubscriptionInstance::rcvd_samples_

◆ rcvd_strategy_

unique_ptr<ReceivedDataStrategy> OpenDDS::DCPS::SubscriptionInstance::rcvd_strategy_

◆ read_sample_count_

CORBA::ULong OpenDDS::DCPS::SubscriptionInstance::read_sample_count_

Definition at line 57 of file SubscriptionInstance.h.

◆ sample_states_

CORBA::ULong OpenDDS::DCPS::SubscriptionInstance::sample_states_

Definition at line 59 of file SubscriptionInstance.h.


The documentation for this class was generated from the following files: