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

Keeps track of a DataWriter's liveliness for a DataReader. More...

#include <WriterInfo.h>

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

Public Types

enum  WriterState { NOT_SET, ALIVE, DEAD }
 
enum  TimerState { NO_TIMER = -1 }
 

Public Member Functions

 WriterInfo (const WriterInfoListener_rch &reader, const GUID_t &writer_id, const DDS::DataWriterQos &writer_qos)
 
MonotonicTimePoint check_activity (const MonotonicTimePoint &now)
 
void received_activity (const MonotonicTimePoint &when)
 called when a sample or other activity is received from this writer. More...
 
WriterState state () const
 returns 1 if the DataWriter is lively; 2 if dead; otherwise returns 0. More...
 
void state (WriterState state)
 
DDS::InstanceHandle_t handle () const
 
void handle (DDS::InstanceHandle_t handle)
 
GUID_t writer_id () const
 
CORBA::Long writer_qos_ownership_strength () const
 
void writer_qos_ownership_strength (const CORBA::Long writer_qos_ownership_strength)
 
bool waiting_for_end_historic_samples () const
 
void waiting_for_end_historic_samples (bool waiting_for_end_historic_samples)
 
SequenceNumber last_historic_seq () const
 
void last_historic_seq (const SequenceNumber &last_historic_seq)
 
const char * get_state_str () const
 
void removed ()
 update liveliness when remove_association is called. More...
 
Coherent_State coherent_change_received ()
 
void reset_coherent_info ()
 
void set_group_info (const CoherentChangeControl &info)
 
void add_coherent_samples (const SequenceNumber &seq)
 
void coherent_change (bool group_coherent, const GUID_t &publisher_id)
 
bool group_coherent () const
 
GUID_t publisher_id () const
 
void clear_owner_evaluated ()
 
void set_owner_evaluated (DDS::InstanceHandle_t instance, bool flag)
 
bool is_owner_evaluated (DDS::InstanceHandle_t instance)
 
void schedule_historic_samples_timer (EndHistoricSamplesMissedSweeper *sweeper, const ACE_Time_Value &ten_seconds)
 
void cancel_historic_samples_timer (EndHistoricSamplesMissedSweeper *sweeper)
 
bool check_end_historic_samples (EndHistoricSamplesMissedSweeper *sweeper, OPENDDS_MAP(SequenceNumber, ReceivedDataSample)&to_deliver)
 
bool check_historic (const SequenceNumber &seq, const ReceivedDataSample &sample, SequenceNumber &last_historic_seq)
 
void finished_delivering_historic ()
 
- 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
 

Private Member Functions

 OPENDDS_MAP (SequenceNumber, ReceivedDataSample) historic_samples_
 
typedef OPENDDS_MAP (DDS::InstanceHandle_t, bool) OwnerEvaluateFlags
 Is this writer evaluated for owner ? More...
 

Private Attributes

ACE_Thread_Mutex mutex_
 
MonotonicTimePoint last_liveliness_activity_time_
 Timestamp of last write/dispose/assert_liveliness from this DataWriter. More...
 
long historic_samples_timer_
 
SequenceNumber last_historic_seq_
 After receiving END_HISTORIC_SAMPLES, check for duplicates. More...
 
bool waiting_for_end_historic_samples_
 
bool delivering_historic_samples_
 
ConditionVariable< ACE_Thread_Mutexdelivering_historic_samples_cv_
 
WriterState state_
 State of the writer. More...
 
WeakRcHandle< WriterInfoListenerreader_
 The DataReader owning this WriterInfo. More...
 
GUID_t writer_id_
 DCPSInfoRepo ID of the DataWriter. More...
 
DDS::DataWriterQos writer_qos_
 Writer qos. More...
 
DDS::InstanceHandle_t handle_
 The publication entity instance handle. More...
 
Atomic< ACE_UINT32 > coherent_samples_
 Number of received coherent changes in active change set. More...
 
OwnerEvaluateFlags owner_evaluated_
 
bool group_coherent_
 Data to support GROUP access scope. More...
 
GUID_t publisher_id_
 
DisjointSequence coherent_sample_sequence_
 
WriterCoherentSample writer_coherent_samples_
 
GroupCoherentSamples group_coherent_samples_
 

Friends

class WriteInfoListner
 

Additional Inherited Members

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

Detailed Description

Keeps track of a DataWriter's liveliness for a DataReader.

Definition at line 81 of file WriterInfo.h.

Member Enumeration Documentation

◆ TimerState

Enumerator
NO_TIMER 

Definition at line 86 of file WriterInfo.h.

◆ WriterState

Enumerator
NOT_SET 
ALIVE 
DEAD 

Definition at line 85 of file WriterInfo.h.

Constructor & Destructor Documentation

◆ WriterInfo()

OpenDDS::DCPS::WriterInfo::WriterInfo ( const WriterInfoListener_rch reader,
const GUID_t writer_id,
const DDS::DataWriterQos writer_qos 
)

Member Function Documentation

◆ add_coherent_samples()

void OpenDDS::DCPS::WriterInfo::add_coherent_samples ( const SequenceNumber seq)

Definition at line 165 of file WriterInfo.cpp.

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

166 {
168  if (coherent_samples_ == 0) {
169  static const SequenceNumber defaultSN;
170  const SequenceRange resetRange(defaultSN, seq);
172  coherent_sample_sequence_.insert(resetRange);
173  }
174  else {
176  }
177 }
DisjointSequence coherent_sample_sequence_
Definition: WriterInfo.h:251
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
bool insert(const SequenceRange &range, OPENDDS_VECTOR(SequenceRange)&added)
Atomic< ACE_UINT32 > coherent_samples_
Number of received coherent changes in active change set.
Definition: WriterInfo.h:241
std::pair< SequenceNumber, SequenceNumber > SequenceRange

◆ cancel_historic_samples_timer()

void OpenDDS::DCPS::WriterInfo::cancel_historic_samples_timer ( EndHistoricSamplesMissedSweeper sweeper)

◆ check_activity()

MonotonicTimePoint OpenDDS::DCPS::WriterInfo::check_activity ( const MonotonicTimePoint now)

check to see if this writer is alive (called by handle_timeout).

Parameters
nownext monotonic time this DataWriter will become not active (not alive) if no sample or liveliness message is received.
Returns
montonic time when the Writer will become not active (if no activity) of MonotonicTimePoint::max_value if the writer is already or became not alive

Definition at line 220 of file WriterInfo.cpp.

References OpenDDS::DCPS::TimePoint_T< MonotonicClock >::max_value, and ACE_Guard< ACE_LOCK >::release().

221 {
223 
225 
226  WriterInfoListener_rch reader = reader_.lock();
227 
228  // We only need check the liveliness with the non-zero liveliness_lease_duration_.
229  if (state_ == ALIVE && reader && !reader->liveliness_lease_duration_.is_zero()) {
230  expires_at = last_liveliness_activity_time_ + reader->liveliness_lease_duration_;
231 
232  if (expires_at <= now) {
233  // let all instances know this write is not alive.
234  guard.release();
235  reader->writer_became_dead(*this);
236  expires_at = MonotonicTimePoint::max_value;
237  }
238  }
239 
240  return expires_at;
241 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
static const TimePoint_T< MonotonicClock > max_value
Definition: TimePoint_T.h:41
RcHandle< WriterInfoListener > WriterInfoListener_rch
Definition: WriterInfo.h:70
MonotonicTimePoint last_liveliness_activity_time_
Timestamp of last write/dispose/assert_liveliness from this DataWriter.
Definition: WriterInfo.h:208
TimePoint_T< MonotonicClock > MonotonicTimePoint
Definition: TimeTypes.h:51
WeakRcHandle< WriterInfoListener > reader_
The DataReader owning this WriterInfo.
Definition: WriterInfo.h:229
WriterState state_
State of the writer.
Definition: WriterInfo.h:226

◆ check_end_historic_samples()

bool OpenDDS::DCPS::WriterInfo::check_end_historic_samples ( EndHistoricSamplesMissedSweeper sweeper,
OPENDDS_MAP(SequenceNumber, ReceivedDataSample)&  to_deliver 
)

Definition at line 121 of file WriterInfo.cpp.

References OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::cancel_timer(), OpenDDS::DCPS::rchandle_from(), ACE_Guard< ACE_LOCK >::release(), and TheServiceParticipant.

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

122 {
125  delivering_historic_samples_cv_.wait(TheServiceParticipant->get_thread_status_manager());
126  }
128  bool result = false;
129  RcHandle<WriterInfo> info = rchandle_from(this);
130  if (!historic_samples_.empty()) {
131  last_historic_seq_ = historic_samples_.rbegin()->first;
133  to_deliver.swap(historic_samples_);
134  result = true;
135  }
136  guard.release();
137  sweeper->cancel_timer(info);
138  return result;
139  }
140  return false;
141 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
SequenceNumber last_historic_seq_
After receiving END_HISTORIC_SAMPLES, check for duplicates.
Definition: WriterInfo.h:218
CvStatus wait(ThreadStatusManager &thread_status_manager)
Block until thread is woken up.
RcHandle< T > rchandle_from(T *pointer)
Definition: RcHandle_T.h:310
#define TheServiceParticipant
ConditionVariable< ACE_Thread_Mutex > delivering_historic_samples_cv_
Definition: WriterInfo.h:223

◆ check_historic()

bool OpenDDS::DCPS::WriterInfo::check_historic ( const SequenceNumber seq,
const ReceivedDataSample sample,
SequenceNumber last_historic_seq 
)

Definition at line 144 of file WriterInfo.cpp.

145 {
149  historic_samples_.insert(std::make_pair(seq, sample));
150  return true;
151  }
152  return false;
153 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
SequenceNumber last_historic_seq_
After receiving END_HISTORIC_SAMPLES, check for duplicates.
Definition: WriterInfo.h:218
SequenceNumber last_historic_seq() const
Definition: WriterInfo.h:157

◆ clear_owner_evaluated()

void OpenDDS::DCPS::WriterInfo::clear_owner_evaluated ( )

◆ coherent_change()

void OpenDDS::DCPS::WriterInfo::coherent_change ( bool  group_coherent,
const GUID_t publisher_id 
)

Definition at line 180 of file WriterInfo.cpp.

181 {
186 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
GUID_t publisher_id() const
Definition: WriterInfo.h:186
bool group_coherent() const
Definition: WriterInfo.h:181
Atomic< ACE_UINT32 > coherent_samples_
Number of received coherent changes in active change set.
Definition: WriterInfo.h:241
bool group_coherent_
Data to support GROUP access scope.
Definition: WriterInfo.h:249

◆ coherent_change_received()

Coherent_State OpenDDS::DCPS::WriterInfo::coherent_change_received ( )

Definition at line 256 of file WriterInfo.cpp.

References OpenDDS::DCPS::COMPLETED, OpenDDS::DCPS::NOT_COMPLETED_YET, and OpenDDS::DCPS::REJECTED.

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

◆ finished_delivering_historic()

void OpenDDS::DCPS::WriterInfo::finished_delivering_historic ( )

Definition at line 156 of file WriterInfo.cpp.

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

157 {
161 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
bool notify_all()
Unblock all of the threads waiting on this condition.
ConditionVariable< ACE_Thread_Mutex > delivering_historic_samples_cv_
Definition: WriterInfo.h:223

◆ get_state_str()

const char * OpenDDS::DCPS::WriterInfo::get_state_str ( ) const

Definition at line 84 of file WriterInfo.cpp.

References ACE_ERROR, ACE_TEXT(), and LM_ERROR.

Referenced by OpenDDS::DCPS::DataReaderImpl::writer_became_alive(), and OpenDDS::DCPS::DataReaderImpl::writer_became_dead().

85 {
87  switch (state_) {
88  case NOT_SET:
89  return "NOT_SET";
90  case ALIVE:
91  return "ALIVE";
92  case DEAD:
93  return "DEAD";
94  default:
95  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: WriterInfo::get_state_str: ")
96  ACE_TEXT("%d is either invalid or not recognized.\n"),
97  state_));
98  return "Invalid state";
99  }
100 }
#define ACE_ERROR(X)
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
ACE_TEXT("TCP_Factory")
WriterState state_
State of the writer.
Definition: WriterInfo.h:226

◆ group_coherent()

bool OpenDDS::DCPS::WriterInfo::group_coherent ( ) const
inline

Definition at line 181 of file WriterInfo.h.

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

181  {
183  return group_coherent_;
184  }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
bool group_coherent_
Data to support GROUP access scope.
Definition: WriterInfo.h:249

◆ handle() [1/2]

DDS::InstanceHandle_t OpenDDS::DCPS::WriterInfo::handle ( void  ) const
inline

◆ handle() [2/2]

void OpenDDS::DCPS::WriterInfo::handle ( DDS::InstanceHandle_t  handle)
inline

Definition at line 121 of file WriterInfo.h.

122  {
124  handle_ = handle;
125  };
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
DDS::InstanceHandle_t handle() const
Definition: WriterInfo.h:115
DDS::InstanceHandle_t handle_
The publication entity instance handle.
Definition: WriterInfo.h:238

◆ is_owner_evaluated()

bool OpenDDS::DCPS::WriterInfo::is_owner_evaluated ( DDS::InstanceHandle_t  instance)

Definition at line 207 of file WriterInfo.cpp.

208 {
210  OwnerEvaluateFlags::iterator iter = owner_evaluated_.find(instance);
211  if (iter == owner_evaluated_.end()) {
212  owner_evaluated_.insert(OwnerEvaluateFlags::value_type(instance, false));
213  return false;
214  }
215  else
216  return iter->second;
217 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
OwnerEvaluateFlags owner_evaluated_
Definition: WriterInfo.h:245

◆ last_historic_seq() [1/2]

SequenceNumber OpenDDS::DCPS::WriterInfo::last_historic_seq ( ) const
inline

Definition at line 157 of file WriterInfo.h.

158  {
160  return last_historic_seq_;
161  }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
SequenceNumber last_historic_seq_
After receiving END_HISTORIC_SAMPLES, check for duplicates.
Definition: WriterInfo.h:218

◆ last_historic_seq() [2/2]

void OpenDDS::DCPS::WriterInfo::last_historic_seq ( const SequenceNumber last_historic_seq)
inline

Definition at line 163 of file WriterInfo.h.

164  {
167  }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
SequenceNumber last_historic_seq_
After receiving END_HISTORIC_SAMPLES, check for duplicates.
Definition: WriterInfo.h:218
SequenceNumber last_historic_seq() const
Definition: WriterInfo.h:157

◆ OPENDDS_MAP() [1/2]

OpenDDS::DCPS::WriterInfo::OPENDDS_MAP ( SequenceNumber  ,
ReceivedDataSample   
)
private

Temporary holding place for samples received before the END_HISTORIC_SAMPLES control message.

◆ OPENDDS_MAP() [2/2]

typedef OpenDDS::DCPS::WriterInfo::OPENDDS_MAP ( DDS::InstanceHandle_t  ,
bool   
)
private

Is this writer evaluated for owner ?

◆ publisher_id()

GUID_t OpenDDS::DCPS::WriterInfo::publisher_id ( ) const
inline

◆ received_activity()

void OpenDDS::DCPS::WriterInfo::received_activity ( const MonotonicTimePoint when)
inline

called when a sample or other activity is received from this writer.

Definition at line 260 of file WriterInfo.h.

References ACE_Guard< ACE_LOCK >::release().

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

261 {
263 
265 
266  if (state_ != ALIVE) { // NOT_SET || DEAD
267  RcHandle<WriterInfoListener> reader = reader_.lock();
268  guard.release();
269  if (reader) {
270  reader->writer_became_alive(*this, when);
271  }
272  }
273 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
MonotonicTimePoint last_liveliness_activity_time_
Timestamp of last write/dispose/assert_liveliness from this DataWriter.
Definition: WriterInfo.h:208
WeakRcHandle< WriterInfoListener > reader_
The DataReader owning this WriterInfo.
Definition: WriterInfo.h:229
WriterState state_
State of the writer.
Definition: WriterInfo.h:226

◆ removed()

void OpenDDS::DCPS::WriterInfo::removed ( )

update liveliness when remove_association is called.

Definition at line 244 of file WriterInfo.cpp.

References ACE_Guard< ACE_LOCK >::release().

245 {
247  WriterInfoListener_rch reader = reader_.lock();
248  guard.release();
249  if (reader) {
250  reader->writer_removed(*this);
251  }
252 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
RcHandle< WriterInfoListener > WriterInfoListener_rch
Definition: WriterInfo.h:70
WeakRcHandle< WriterInfoListener > reader_
The DataReader owning this WriterInfo.
Definition: WriterInfo.h:229

◆ reset_coherent_info()

void OpenDDS::DCPS::WriterInfo::reset_coherent_info ( )

Definition at line 278 of file WriterInfo.cpp.

References OpenDDS::DCPS::GUID_UNKNOWN.

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

279 {
281  coherent_samples_ = 0;
282  group_coherent_ = false;
286  group_coherent_samples_.clear();
287 }
DisjointSequence coherent_sample_sequence_
Definition: WriterInfo.h:251
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
Atomic< ACE_UINT32 > coherent_samples_
Number of received coherent changes in active change set.
Definition: WriterInfo.h:241
bool group_coherent_
Data to support GROUP access scope.
Definition: WriterInfo.h:249
GroupCoherentSamples group_coherent_samples_
Definition: WriterInfo.h:253
WriterCoherentSample writer_coherent_samples_
Definition: WriterInfo.h:252

◆ schedule_historic_samples_timer()

void OpenDDS::DCPS::WriterInfo::schedule_historic_samples_timer ( EndHistoricSamplesMissedSweeper sweeper,
const ACE_Time_Value ten_seconds 
)

Definition at line 103 of file WriterInfo.cpp.

References OpenDDS::DCPS::ReactorInterceptor::reactor().

104 {
106  const void* arg = reinterpret_cast<const void*>(this);
107  historic_samples_timer_ = sweeper->reactor()->schedule_timer(sweeper, arg, ten_seconds);
108 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205

◆ set_group_info()

void OpenDDS::DCPS::WriterInfo::set_group_info ( const CoherentChangeControl info)

Definition at line 291 of file WriterInfo.cpp.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::CoherentChangeControl::coherent_samples_, OpenDDS::DCPS::CoherentChangeControl::group_coherent_, OpenDDS::DCPS::CoherentChangeControl::group_coherent_samples_, LM_ERROR, OPENDDS_END_VERSIONED_NAMESPACE_DECL, and OpenDDS::DCPS::CoherentChangeControl::publisher_id_.

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

292 {
294  if (!(publisher_id_ == info.publisher_id_)
295  || group_coherent_ != info.group_coherent_) {
296  WriterInfoListener_rch reader = reader_.lock();
297  ACE_ERROR((LM_ERROR,
298  ACE_TEXT("(%P|%t) ERROR: WriterInfo::set_group_info()")
299  ACE_TEXT(" reader %C writer %C incorrect coherent info !\n"),
300  reader ? LogGuid(reader->subscription_id_).c_str() : "",
301  LogGuid(writer_id_).c_str()));
302  }
303 
304  writer_coherent_samples_ = info.coherent_samples_;
305  group_coherent_samples_ = info.group_coherent_samples_;
306 }
#define ACE_ERROR(X)
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
RcHandle< WriterInfoListener > WriterInfoListener_rch
Definition: WriterInfo.h:70
GUID_t writer_id_
DCPSInfoRepo ID of the DataWriter.
Definition: WriterInfo.h:232
ACE_TEXT("TCP_Factory")
bool group_coherent_
Data to support GROUP access scope.
Definition: WriterInfo.h:249
GroupCoherentSamples group_coherent_samples_
Definition: WriterInfo.h:253
WriterCoherentSample writer_coherent_samples_
Definition: WriterInfo.h:252
WeakRcHandle< WriterInfoListener > reader_
The DataReader owning this WriterInfo.
Definition: WriterInfo.h:229

◆ set_owner_evaluated()

void OpenDDS::DCPS::WriterInfo::set_owner_evaluated ( DDS::InstanceHandle_t  instance,
bool  flag 
)

Definition at line 197 of file WriterInfo.cpp.

198 {
200  if (flag ||
201  (!flag && owner_evaluated_.find(instance) != owner_evaluated_.end())) {
202  owner_evaluated_[instance] = flag;
203  }
204 }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
OwnerEvaluateFlags owner_evaluated_
Definition: WriterInfo.h:245

◆ state() [1/2]

WriterState OpenDDS::DCPS::WriterInfo::state ( void  ) const
inline

returns 1 if the DataWriter is lively; 2 if dead; otherwise returns 0.

Definition at line 103 of file WriterInfo.h.

Referenced by OpenDDS::DCPS::DataReaderImpl::writer_became_alive(), OpenDDS::DCPS::DataReaderImpl::writer_became_dead(), and OpenDDS::DCPS::DataReaderImpl::writer_removed().

104  {
106  return state_;
107  };
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
WriterState state_
State of the writer.
Definition: WriterInfo.h:226

◆ state() [2/2]

void OpenDDS::DCPS::WriterInfo::state ( WriterState  state)
inline

Definition at line 109 of file WriterInfo.h.

References state.

110  {
112  state_ = state;
113  };
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
WriterState state() const
returns 1 if the DataWriter is lively; 2 if dead; otherwise returns 0.
Definition: WriterInfo.h:103
WriterState state_
State of the writer.
Definition: WriterInfo.h:226

◆ waiting_for_end_historic_samples() [1/2]

bool OpenDDS::DCPS::WriterInfo::waiting_for_end_historic_samples ( ) const
inline

◆ waiting_for_end_historic_samples() [2/2]

void OpenDDS::DCPS::WriterInfo::waiting_for_end_historic_samples ( bool  waiting_for_end_historic_samples)
inline

◆ writer_id()

GUID_t OpenDDS::DCPS::WriterInfo::writer_id ( ) const
inline

◆ writer_qos_ownership_strength() [1/2]

CORBA::Long OpenDDS::DCPS::WriterInfo::writer_qos_ownership_strength ( ) const
inline

Definition at line 133 of file WriterInfo.h.

134  {
137  }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
OwnershipStrengthQosPolicy ownership_strength
DDS::DataWriterQos writer_qos_
Writer qos.
Definition: WriterInfo.h:235

◆ writer_qos_ownership_strength() [2/2]

void OpenDDS::DCPS::WriterInfo::writer_qos_ownership_strength ( const CORBA::Long  writer_qos_ownership_strength)
inline

Definition at line 139 of file WriterInfo.h.

140  {
143  }
ACE_Thread_Mutex mutex_
Definition: WriterInfo.h:205
OwnershipStrengthQosPolicy ownership_strength
CORBA::Long writer_qos_ownership_strength() const
Definition: WriterInfo.h:133
DDS::DataWriterQos writer_qos_
Writer qos.
Definition: WriterInfo.h:235

Friends And Related Function Documentation

◆ WriteInfoListner

friend class WriteInfoListner
friend

Definition at line 82 of file WriterInfo.h.

Member Data Documentation

◆ coherent_sample_sequence_

DisjointSequence OpenDDS::DCPS::WriterInfo::coherent_sample_sequence_
private

Definition at line 251 of file WriterInfo.h.

◆ coherent_samples_

Atomic<ACE_UINT32> OpenDDS::DCPS::WriterInfo::coherent_samples_
private

Number of received coherent changes in active change set.

Definition at line 241 of file WriterInfo.h.

◆ delivering_historic_samples_

bool OpenDDS::DCPS::WriterInfo::delivering_historic_samples_
private

Definition at line 222 of file WriterInfo.h.

◆ delivering_historic_samples_cv_

ConditionVariable<ACE_Thread_Mutex> OpenDDS::DCPS::WriterInfo::delivering_historic_samples_cv_
private

Definition at line 223 of file WriterInfo.h.

◆ group_coherent_

bool OpenDDS::DCPS::WriterInfo::group_coherent_
private

Data to support GROUP access scope.

Definition at line 249 of file WriterInfo.h.

◆ group_coherent_samples_

GroupCoherentSamples OpenDDS::DCPS::WriterInfo::group_coherent_samples_
private

Definition at line 253 of file WriterInfo.h.

◆ handle_

DDS::InstanceHandle_t OpenDDS::DCPS::WriterInfo::handle_
private

The publication entity instance handle.

Definition at line 238 of file WriterInfo.h.

◆ historic_samples_timer_

long OpenDDS::DCPS::WriterInfo::historic_samples_timer_
private

Definition at line 211 of file WriterInfo.h.

◆ last_historic_seq_

SequenceNumber OpenDDS::DCPS::WriterInfo::last_historic_seq_
private

After receiving END_HISTORIC_SAMPLES, check for duplicates.

Definition at line 218 of file WriterInfo.h.

◆ last_liveliness_activity_time_

MonotonicTimePoint OpenDDS::DCPS::WriterInfo::last_liveliness_activity_time_
private

Timestamp of last write/dispose/assert_liveliness from this DataWriter.

Definition at line 208 of file WriterInfo.h.

◆ mutex_

ACE_Thread_Mutex OpenDDS::DCPS::WriterInfo::mutex_
mutableprivate

Definition at line 205 of file WriterInfo.h.

◆ owner_evaluated_

OwnerEvaluateFlags OpenDDS::DCPS::WriterInfo::owner_evaluated_
private

Definition at line 245 of file WriterInfo.h.

◆ publisher_id_

GUID_t OpenDDS::DCPS::WriterInfo::publisher_id_
private

Definition at line 250 of file WriterInfo.h.

◆ reader_

WeakRcHandle<WriterInfoListener> OpenDDS::DCPS::WriterInfo::reader_
private

The DataReader owning this WriterInfo.

Definition at line 229 of file WriterInfo.h.

◆ state_

WriterState OpenDDS::DCPS::WriterInfo::state_
private

State of the writer.

Definition at line 226 of file WriterInfo.h.

◆ waiting_for_end_historic_samples_

bool OpenDDS::DCPS::WriterInfo::waiting_for_end_historic_samples_
private

Definition at line 220 of file WriterInfo.h.

◆ writer_coherent_samples_

WriterCoherentSample OpenDDS::DCPS::WriterInfo::writer_coherent_samples_
private

Definition at line 252 of file WriterInfo.h.

◆ writer_id_

GUID_t OpenDDS::DCPS::WriterInfo::writer_id_
private

DCPSInfoRepo ID of the DataWriter.

Definition at line 232 of file WriterInfo.h.

◆ writer_qos_

DDS::DataWriterQos OpenDDS::DCPS::WriterInfo::writer_qos_
private

Writer qos.

Definition at line 235 of file WriterInfo.h.


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