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

#include <DRMonitorImpl.h>

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

Public Member Functions

 DRMonitorImpl (DataReaderImpl *dr, OpenDDS::DCPS::DataReaderReportDataWriter_ptr dr_writer)
 
virtual ~DRMonitorImpl ()
 
virtual void report ()
 
- Public Member Functions inherited from OpenDDS::DCPS::Monitor
 Monitor ()
 
virtual ~Monitor ()
 

Private Attributes

DataReaderImpldr_
 
OpenDDS::DCPS::DataReaderReportDataWriter_var dr_writer_
 

Detailed Description

Definition at line 24 of file DRMonitorImpl.h.

Constructor & Destructor Documentation

◆ DRMonitorImpl()

OpenDDS::DCPS::DRMonitorImpl::DRMonitorImpl ( DataReaderImpl dr,
OpenDDS::DCPS::DataReaderReportDataWriter_ptr  dr_writer 
)

Definition at line 20 of file DRMonitorImpl.cpp.

References _duplicate().

22  : dr_(dr)
23  , dr_writer_(DataReaderReportDataWriter::_duplicate(dr_writer))
24 {
25 }
OpenDDS::DCPS::DataReaderReportDataWriter_var dr_writer_
Definition: DRMonitorImpl.h:33

◆ ~DRMonitorImpl()

OpenDDS::DCPS::DRMonitorImpl::~DRMonitorImpl ( )
virtual

Definition at line 27 of file DRMonitorImpl.cpp.

28 {
29 }

Member Function Documentation

◆ report()

void OpenDDS::DCPS::DRMonitorImpl::report ( )
virtual

Implements OpenDDS::DCPS::Monitor.

Definition at line 32 of file DRMonitorImpl.cpp.

References OpenDDS::DCPS::DataReaderReport::associations, OpenDDS::DCPS::DataReaderReport::dp_id, dr_, OpenDDS::DCPS::DataReaderReport::dr_id, dr_writer_, OpenDDS::DCPS::DataReaderImpl::get_dp_id(), OpenDDS::DCPS::DataReaderImpl::get_guid(), OpenDDS::DCPS::DataReaderImpl::get_instance_handles(), OpenDDS::DCPS::DataReaderImpl::get_subscriber(), OpenDDS::DCPS::DataReaderImpl::get_topic_id(), OpenDDS::DCPS::DataReaderImpl::get_writer_states(), DDS::HANDLE_NIL, OpenDDS::DCPS::DataReaderReport::instances, CORBA::is_nil(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::DataReaderReport::sub_handle, and OpenDDS::DCPS::DataReaderReport::topic_id.

32  {
33  if (!CORBA::is_nil(dr_writer_.in())) {
34  DataReaderReport report;
35  report.dp_id = dr_->get_dp_id();
36  DDS::Subscriber_var sub = dr_->get_subscriber();
37  report.sub_handle = sub->get_instance_handle();
38  report.dr_id = dr_->get_guid();
39  report.topic_id = dr_->get_topic_id();
40  DataReaderImpl::InstanceHandleVec instances;
41  dr_->get_instance_handles(instances);
42  CORBA::ULong length = 0;
43  report.instances.length(static_cast<CORBA::ULong>(instances.size()));
44  for (DataReaderImpl::InstanceHandleVec::iterator iter = instances.begin();
45  iter != instances.end();
46  ++iter) {
47  report.instances[length++] = *iter;
48  }
49  DataReaderImpl::WriterStatePairVec writer_states;
50  dr_->get_writer_states(writer_states);
51  length = 0;
52  report.associations.length(static_cast<CORBA::ULong>(writer_states.size()));
53  for (DataReaderImpl::WriterStatePairVec::iterator iter = writer_states.begin();
54  iter != writer_states.end();
55  ++iter) {
56  report.associations[length].dw_id = iter->first;
57  report.associations[length].state = iter->second;
58  length++;
59  }
60  dr_writer_->write(report, DDS::HANDLE_NIL);
61  }
62 }
const InstanceHandle_t HANDLE_NIL
ACE_CDR::ULong ULong
OpenDDS::DCPS::DataReaderReportDataWriter_var dr_writer_
Definition: DRMonitorImpl.h:33
void get_instance_handles(InstanceHandleVec &instance_handles)
virtual DDS::Subscriber_ptr get_subscriber()
Boolean is_nil(T x)
void get_writer_states(WriterStatePairVec &writer_states)

Member Data Documentation

◆ dr_

DataReaderImpl* OpenDDS::DCPS::DRMonitorImpl::dr_
private

Definition at line 32 of file DRMonitorImpl.h.

Referenced by report().

◆ dr_writer_

OpenDDS::DCPS::DataReaderReportDataWriter_var OpenDDS::DCPS::DRMonitorImpl::dr_writer_
private

Definition at line 33 of file DRMonitorImpl.h.

Referenced by report().


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