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

#include <ReceivedDataElementList.h>

Collaboration diagram for OpenDDS::DCPS::ReceivedDataElementList:
Collaboration graph
[legend]

Public Member Functions

 ReceivedDataElementList (const DataReaderImpl_rch &reader, const InstanceState_rch &instance_state=InstanceState_rch())
 
 ~ReceivedDataElementList ()
 
void apply_all (ReceivedDataFilter &match, ReceivedDataOperation &func)
 
void add (ReceivedDataElement *data_sample)
 
void add_by_timestamp (ReceivedDataElement *data_sample)
 
bool remove (ReceivedDataElement *data_sample)
 
bool remove (ReceivedDataFilter &match, bool eval_all)
 
const ReceivedDataElementpeek_tail ()
 
ReceivedDataElementremove_head ()
 
ReceivedDataElementremove_tail ()
 
size_t size () const
 
bool has_zero_copies () const
 
bool matches (CORBA::ULong sample_states) const
 
ReceivedDataElementget_next_match (CORBA::ULong sample_states, ReceivedDataElement *prev)
 
void mark_read (ReceivedDataElement *item)
 
void accept_coherent_change (ReceivedDataElement *item)
 

Private Member Functions

void increment_read_count ()
 
void decrement_read_count ()
 
void increment_not_read_count ()
 
void decrement_not_read_count ()
 
bool sanity_check ()
 
bool sanity_check (ReceivedDataElement *item)
 

Private Attributes

DataReaderImpl_wrch reader_
 
ReceivedDataElementhead_
 The first element of the list. More...
 
ReceivedDataElementtail_
 The last element of the list. More...
 
size_t size_
 Number of elements in the list. More...
 
CORBA::ULong read_sample_count_
 
CORBA::ULong not_read_sample_count_
 
CORBA::ULong sample_states_
 
InstanceState_rch instance_state_
 

Detailed Description

Definition at line 190 of file ReceivedDataElementList.h.

Constructor & Destructor Documentation

◆ ReceivedDataElementList()

OpenDDS::DCPS::ReceivedDataElementList::ReceivedDataElementList ( const DataReaderImpl_rch reader,
const InstanceState_rch instance_state = InstanceState_rch() 
)
explicit

Definition at line 57 of file ReceivedDataElementList.cpp.

58  : reader_(reader), head_(0), tail_(0), size_(0)
60  , instance_state_(instance_state)
61 {
62 }
ReceivedDataElement * head_
The first element of the list.
size_t size_
Number of elements in the list.
ReceivedDataElement * tail_
The last element of the list.

◆ ~ReceivedDataElementList()

OpenDDS::DCPS::ReceivedDataElementList::~ReceivedDataElementList ( )

Definition at line 64 of file ReceivedDataElementList.cpp.

65 {
66  // The memory pointed to by instance_state_ is owned by
67  // another object.
68 }

Member Function Documentation

◆ accept_coherent_change()

void OpenDDS::DCPS::ReceivedDataElementList::accept_coherent_change ( ReceivedDataElement item)

Definition at line 255 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::ReceivedDataElement::coherent_change_, increment_not_read_count(), OPENDDS_ASSERT, and sanity_check().

256 {
258  if (item->coherent_change_) {
259  item->coherent_change_ = false;
261  }
262 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66

◆ add()

ACE_INLINE void OpenDDS::DCPS::ReceivedDataElementList::add ( ReceivedDataElement data_sample)

Definition at line 13 of file ReceivedDataElementList.inl.

References ACE_INLINE, OpenDDS::DCPS::ReceivedDataElement::coherent_change_, OpenDDS::DCPS::InstanceState::empty(), head_, increment_not_read_count(), increment_read_count(), instance_state_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, DDS::NOT_READ_SAMPLE_STATE, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, OpenDDS::DCPS::ReceivedDataElement::sample_state_, size_, and tail_.

Referenced by OpenDDS::DCPS::ReceivedDataStrategy::add(), and add_by_timestamp().

14 {
15  // The default action is to simply add to the
16  // tail - in the future we may want to add
17  // to the middle of the list based on sequence
18  // number and/or source timestamp
19 
20  data_sample->previous_data_sample_ = 0;
21  data_sample->next_data_sample_ = 0;
22 
23  ++size_;
24 
25 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
26  if (!data_sample->coherent_change_)
27 #endif
28  {
29  if (data_sample->sample_state_ == DDS::NOT_READ_SAMPLE_STATE) {
31  } else {
33  }
34  }
35 
36  if (!head_) {
37  // First sample in the list.
38  head_ = tail_ = data_sample;
39 
40  } else {
41  // Add to existing list.
42  tail_->next_data_sample_ = data_sample;
43  data_sample->previous_data_sample_ = tail_;
44  tail_ = data_sample;
45  }
46 
47  if (instance_state_) {
48  instance_state_->empty(false);
49  }
50 }
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * previous_data_sample_
the previous data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.
size_t size_
Number of elements in the list.
ReceivedDataElement * tail_
The last element of the list.
const SampleStateKind NOT_READ_SAMPLE_STATE
bool empty(bool value)
DataReader has become empty. Returns true if the instance was released.

◆ add_by_timestamp()

void OpenDDS::DCPS::ReceivedDataElementList::add_by_timestamp ( ReceivedDataElement data_sample)

Definition at line 71 of file ReceivedDataElementList.cpp.

References add(), OpenDDS::DCPS::ReceivedDataElement::coherent_change_, head_, increment_not_read_count(), increment_read_count(), OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, DDS::NOT_READ_SAMPLE_STATE, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, OpenDDS::DCPS::ReceivedDataElement::sample_state_, size_, and OpenDDS::DCPS::ReceivedDataElement::source_timestamp_.

Referenced by OpenDDS::DCPS::SourceDataStrategy::add().

72 {
73  data_sample->previous_data_sample_ = 0;
74  data_sample->next_data_sample_ = 0;
75 
76  for (ReceivedDataElement* it = head_; it != 0; it = it->next_data_sample_) {
77  if (data_sample->source_timestamp_ < it->source_timestamp_) {
78  data_sample->previous_data_sample_ = it->previous_data_sample_;
79  data_sample->next_data_sample_ = it;
80 
81  // Are we replacing the head?
82  if (it->previous_data_sample_ == 0) {
83  head_ = data_sample;
84  } else {
85  it->previous_data_sample_->next_data_sample_ = data_sample;
86  }
87  it->previous_data_sample_ = data_sample;
88 
89  ++size_;
90 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
91  if (!data_sample->coherent_change_)
92 #endif
93  {
94  if (data_sample->sample_state_ == DDS::NOT_READ_SAMPLE_STATE) {
96  } else {
98  }
99  }
100 
101  return;
102  }
103  }
104 
105  add(data_sample);
106 }
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * previous_data_sample_
the previous data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.
size_t size_
Number of elements in the list.
const SampleStateKind NOT_READ_SAMPLE_STATE
void add(ReceivedDataElement *data_sample)

◆ apply_all()

void OpenDDS::DCPS::ReceivedDataElementList::apply_all ( ReceivedDataFilter match,
ReceivedDataOperation func 
)

Definition at line 109 of file ReceivedDataElementList.cpp.

References head_, and OpenDDS::DCPS::ReceivedDataElement::next_data_sample_.

Referenced by OpenDDS::DCPS::ReceivedDataStrategy::accept_coherent().

112 {
113  for (ReceivedDataElement* it = head_; it != 0; it = it->next_data_sample_) {
114  if (match(it)) {
115  op(it);
116  }
117  }
118 }
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.

◆ decrement_not_read_count()

void OpenDDS::DCPS::ReceivedDataElementList::decrement_not_read_count ( )
private

Definition at line 302 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::InstanceState::instance_handle(), instance_state_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), not_read_sample_count_, DDS::NOT_READ_SAMPLE_STATE, OPENDDS_ASSERT, reader_, and sample_states_.

Referenced by mark_read(), and remove().

303 {
306  if (!not_read_sample_count_) {
308  DataReaderImpl_rch reader(reader_.lock());
309  if (reader) {
310  reader->state_updated(instance_state_->instance_handle());
311  }
312  }
313 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
RcHandle< T > lock() const
Definition: RcObject.h:188
const SampleStateKind NOT_READ_SAMPLE_STATE
DDS::InstanceHandle_t instance_handle() const
RcHandle< DataReaderImpl > DataReaderImpl_rch
The End User API.

◆ decrement_read_count()

void OpenDDS::DCPS::ReceivedDataElementList::decrement_read_count ( )
private

Definition at line 277 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::InstanceState::instance_handle(), instance_state_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), OPENDDS_ASSERT, read_sample_count_, DDS::READ_SAMPLE_STATE, reader_, and sample_states_.

Referenced by remove().

278 {
281  if (!read_sample_count_) {
283  DataReaderImpl_rch reader(reader_.lock());
284  if (reader) {
285  reader->state_updated(instance_state_->instance_handle());
286  }
287  }
288 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
RcHandle< T > lock() const
Definition: RcObject.h:188
DDS::InstanceHandle_t instance_handle() const
RcHandle< DataReaderImpl > DataReaderImpl_rch
The End User API.
const SampleStateKind READ_SAMPLE_STATE

◆ get_next_match()

OpenDDS::DCPS::ReceivedDataElement * OpenDDS::DCPS::ReceivedDataElementList::get_next_match ( CORBA::ULong  sample_states,
ReceivedDataElement prev 
)

Definition at line 218 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::ReceivedDataElement::coherent_change_, head_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, OPENDDS_ASSERT, OpenDDS::DCPS::ReceivedDataElement::sample_state_, sanity_check(), and tail_.

Referenced by OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::contains_sample_filtered(), OpenDDS::DCPS::DataReaderImpl::get_ordered_data(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::read_i(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::read_instance_i(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::read_next_sample(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::take_i(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::take_instance_i(), and OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::take_next_sample().

219 {
221  if (prev == tail_) {
222  return 0;
223  }
224  ReceivedDataElement* item = prev ? prev->next_data_sample_ : head_;
225  for (; item != 0; item = item->next_data_sample_) {
226  if ((item->sample_state_ & sample_states)
227 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
228  && !item->coherent_change_
229 #endif
230  ) {
231  return item;
232  }
233  }
234  return 0;
235 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
ReceivedDataElement * head_
The first element of the list.
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long in ::DDS::SampleStateMask sample_states
Definition: IDLTemplate.txt:66
ReceivedDataElement * tail_
The last element of the list.

◆ has_zero_copies()

bool OpenDDS::DCPS::ReceivedDataElementList::has_zero_copies ( ) const

Definition at line 201 of file ReceivedDataElementList.cpp.

References head_, and OpenDDS::DCPS::ReceivedDataElement::next_data_sample_.

Referenced by OpenDDS::DCPS::DataReaderImpl::has_zero_copies().

202 {
203  for (ReceivedDataElement* item = head_; item != 0; item = item->next_data_sample_) {
204  if (item->zero_copy_cnt_) {
205  return true;
206  }
207  }
208  return false;
209 }
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.

◆ increment_not_read_count()

void OpenDDS::DCPS::ReceivedDataElementList::increment_not_read_count ( )
private

Definition at line 290 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::InstanceState::instance_handle(), instance_state_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), not_read_sample_count_, DDS::NOT_READ_SAMPLE_STATE, reader_, and sample_states_.

Referenced by accept_coherent_change(), add(), and add_by_timestamp().

291 {
292  if (!not_read_sample_count_) {
294  DataReaderImpl_rch reader(reader_.lock());
295  if (reader) {
296  reader->state_updated(instance_state_->instance_handle());
297  }
298  }
300 }
RcHandle< T > lock() const
Definition: RcObject.h:188
const SampleStateKind NOT_READ_SAMPLE_STATE
DDS::InstanceHandle_t instance_handle() const
RcHandle< DataReaderImpl > DataReaderImpl_rch

◆ increment_read_count()

void OpenDDS::DCPS::ReceivedDataElementList::increment_read_count ( )
private

Definition at line 265 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::InstanceState::instance_handle(), instance_state_, OpenDDS::DCPS::WeakRcHandle< T >::lock(), read_sample_count_, DDS::READ_SAMPLE_STATE, reader_, and sample_states_.

Referenced by add(), add_by_timestamp(), and mark_read().

266 {
267  if (!read_sample_count_) {
269  DataReaderImpl_rch reader(reader_.lock());
270  if (reader) {
271  reader->state_updated(instance_state_->instance_handle());
272  }
273  }
275 }
RcHandle< T > lock() const
Definition: RcObject.h:188
DDS::InstanceHandle_t instance_handle() const
RcHandle< DataReaderImpl > DataReaderImpl_rch
const SampleStateKind READ_SAMPLE_STATE

◆ mark_read()

void OpenDDS::DCPS::ReceivedDataElementList::mark_read ( ReceivedDataElement item)

Definition at line 238 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::ReceivedDataElement::coherent_change_, decrement_not_read_count(), increment_read_count(), DDS::NOT_READ_SAMPLE_STATE, OPENDDS_ASSERT, DDS::READ_SAMPLE_STATE, OpenDDS::DCPS::ReceivedDataElement::sample_state_, and sanity_check().

Referenced by OpenDDS::DCPS::RakeResults< MessageType >::copy_into(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::read_next_sample(), and OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::take_next_sample().

239 {
241 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
242  if (!item->coherent_change_)
243 #endif
244  {
245  if (item->sample_state_ & DDS::NOT_READ_SAMPLE_STATE) {
246  item->sample_state_ = DDS::READ_SAMPLE_STATE;
249  }
250  }
251 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
const SampleStateKind NOT_READ_SAMPLE_STATE
const SampleStateKind READ_SAMPLE_STATE

◆ matches()

bool OpenDDS::DCPS::ReceivedDataElementList::matches ( CORBA::ULong  sample_states) const

Definition at line 212 of file ReceivedDataElementList.cpp.

References sample_states, and sample_states_.

Referenced by OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::finish_store_instance_data(), and OpenDDS::DCPS::SubscriptionInstance::matches().

213 {
214  return sample_states_ & sample_states;
215 }
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long in ::DDS::SampleStateMask sample_states
Definition: IDLTemplate.txt:66

◆ peek_tail()

const ReceivedDataElement* OpenDDS::DCPS::ReceivedDataElementList::peek_tail ( )
inline

◆ remove() [1/2]

bool OpenDDS::DCPS::ReceivedDataElementList::remove ( ReceivedDataElement data_sample)

Definition at line 142 of file ReceivedDataElementList.cpp.

References OpenDDS::DCPS::ReceivedDataElement::coherent_change_, decrement_not_read_count(), decrement_read_count(), OpenDDS::DCPS::InstanceState::empty(), head_, instance_state_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, DDS::NOT_READ_SAMPLE_STATE, OPENDDS_ASSERT, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, OpenDDS::DCPS::ReceivedDataElement::sample_state_, sanity_check(), size_, and tail_.

Referenced by OpenDDS::DCPS::RakeResults< MessageType >::copy_into(), OpenDDS::DCPS::ReceivedDataStrategy::reject_coherent(), and OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::take_next_sample().

143 {
145 
146  if (!head_) {
147  return false;
148  }
149 
150  bool released = false;
151 
152  size_--;
153 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
154  if (!item->coherent_change_)
155 #endif
156  {
157  if (item->sample_state_ == DDS::NOT_READ_SAMPLE_STATE) {
159  } else {
161  }
162  }
163  if (item == head_) {
164  if (head_ == tail_) {
165  head_ = tail_ = 0;
166 
167  } else {
168  head_ = item->next_data_sample_;
169 
170  if (head_) {
172  }
173  }
174 
175  } else if (item == tail_) {
177 
178  if (tail_) {
180  }
181 
182  } else {
184  item->next_data_sample_;
186  item->previous_data_sample_;
187  }
188 
189  item->previous_data_sample_ = 0;
190  item->next_data_sample_ = 0;
191 
192  if (instance_state_ && size_ == 0) {
193  // let the instance know it is empty
194  released = instance_state_->empty(true);
195  }
196 
197  return released;
198 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * previous_data_sample_
the previous data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.
size_t size_
Number of elements in the list.
ReceivedDataElement * tail_
The last element of the list.
const SampleStateKind NOT_READ_SAMPLE_STATE
bool empty(bool value)
DataReader has become empty. Returns true if the instance was released.

◆ remove() [2/2]

bool OpenDDS::DCPS::ReceivedDataElementList::remove ( ReceivedDataFilter match,
bool  eval_all 
)

Definition at line 121 of file ReceivedDataElementList.cpp.

References head_, and OpenDDS::DCPS::ReceivedDataElement::next_data_sample_.

124 {
125  if (!head_) {
126  return false;
127  }
128 
129  bool released = false;
130 
131  for (ReceivedDataElement* item = head_; item != 0; item = item->next_data_sample_) {
132  if (match(item)) {
133  released = released || remove(item);
134  if (!eval_all) break;
135  }
136  }
137 
138  return released;
139 }
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.

◆ remove_head()

ACE_INLINE OpenDDS::DCPS::ReceivedDataElement * OpenDDS::DCPS::ReceivedDataElementList::remove_head ( )

Definition at line 54 of file ReceivedDataElementList.inl.

References ACE_INLINE, head_, and size_.

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

55 {
56  if (!size_) {
57  return 0;
58  }
59 
61  remove(head_);
62  return ptr;
63 }
ReceivedDataElement * head_
The first element of the list.
size_t size_
Number of elements in the list.

◆ remove_tail()

ACE_INLINE OpenDDS::DCPS::ReceivedDataElement * OpenDDS::DCPS::ReceivedDataElementList::remove_tail ( )

Definition at line 67 of file ReceivedDataElementList.inl.

References size_, and tail_.

68 {
69  if (!size_) {
70  return 0;
71  }
72 
74  remove(tail_);
75  return ptr;
76 }
size_t size_
Number of elements in the list.
ReceivedDataElement * tail_
The last element of the list.

◆ sanity_check() [1/2]

bool OpenDDS::DCPS::ReceivedDataElementList::sanity_check ( )
private

Definition at line 315 of file ReceivedDataElementList.cpp.

References head_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, OPENDDS_ASSERT, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, and tail_.

Referenced by accept_coherent_change(), get_next_match(), mark_read(), and remove().

316 {
318  for (ReceivedDataElement* item = head_; item != 0; item = item->next_data_sample_) {
320  }
322  return true;
323 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
ReceivedDataElement * next_data_sample_
the next data sample in the ReceivedDataElementList
ReceivedDataElement * previous_data_sample_
the previous data sample in the ReceivedDataElementList
ReceivedDataElement * head_
The first element of the list.
ReceivedDataElement * tail_
The last element of the list.

◆ sanity_check() [2/2]

bool OpenDDS::DCPS::ReceivedDataElementList::sanity_check ( ReceivedDataElement item)
private

Definition at line 325 of file ReceivedDataElementList.cpp.

References head_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, OPENDDS_ASSERT, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, and tail_.

326 {
327  ACE_UNUSED_ARG(item);
328  OPENDDS_ASSERT(item == 0 || (item->next_data_sample_ == 0 && item == tail_) || (item->next_data_sample_ && item->next_data_sample_->previous_data_sample_ == item));
329  OPENDDS_ASSERT(item == 0 || (item->previous_data_sample_ == 0 && item == head_) || (item->previous_data_sample_ && item->previous_data_sample_->next_data_sample_ == item));
330  return true;
331 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
ReceivedDataElement * head_
The first element of the list.
ReceivedDataElement * tail_
The last element of the list.

◆ size()

size_t OpenDDS::DCPS::ReceivedDataElementList::size ( void  ) const
inline

Member Data Documentation

◆ head_

ReceivedDataElement* OpenDDS::DCPS::ReceivedDataElementList::head_
private

The first element of the list.

Definition at line 228 of file ReceivedDataElementList.h.

Referenced by add(), add_by_timestamp(), apply_all(), get_next_match(), has_zero_copies(), remove(), remove_head(), and sanity_check().

◆ instance_state_

InstanceState_rch OpenDDS::DCPS::ReceivedDataElementList::instance_state_
private

◆ not_read_sample_count_

CORBA::ULong OpenDDS::DCPS::ReceivedDataElementList::not_read_sample_count_
private

◆ read_sample_count_

CORBA::ULong OpenDDS::DCPS::ReceivedDataElementList::read_sample_count_
private

Definition at line 236 of file ReceivedDataElementList.h.

Referenced by decrement_read_count(), and increment_read_count().

◆ reader_

DataReaderImpl_wrch OpenDDS::DCPS::ReceivedDataElementList::reader_
private

◆ sample_states_

CORBA::ULong OpenDDS::DCPS::ReceivedDataElementList::sample_states_
private

◆ size_

size_t OpenDDS::DCPS::ReceivedDataElementList::size_
private

Number of elements in the list.

Definition at line 234 of file ReceivedDataElementList.h.

Referenced by add(), add_by_timestamp(), remove(), remove_head(), and remove_tail().

◆ tail_

ReceivedDataElement* OpenDDS::DCPS::ReceivedDataElementList::tail_
private

The last element of the list.

Definition at line 231 of file ReceivedDataElementList.h.

Referenced by add(), get_next_match(), remove(), remove_tail(), and sanity_check().


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