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

#include <SubscriberMonitorImpl.h>

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

Public Member Functions

 SubscriberMonitorImpl (SubscriberImpl *sub, OpenDDS::DCPS::SubscriberReportDataWriter_ptr sub_writer)
 
virtual ~SubscriberMonitorImpl ()
 
virtual void report ()
 
- Public Member Functions inherited from OpenDDS::DCPS::Monitor
 Monitor ()
 
virtual ~Monitor ()
 

Private Attributes

SubscriberImplsub_
 
OpenDDS::DCPS::SubscriberReportDataWriter_var sub_writer_
 

Detailed Description

Definition at line 24 of file SubscriberMonitorImpl.h.

Constructor & Destructor Documentation

◆ SubscriberMonitorImpl()

OpenDDS::DCPS::SubscriberMonitorImpl::SubscriberMonitorImpl ( SubscriberImpl sub,
OpenDDS::DCPS::SubscriberReportDataWriter_ptr  sub_writer 
)

Definition at line 21 of file SubscriberMonitorImpl.cpp.

References _duplicate().

23  : sub_(sub),
24  sub_writer_(SubscriberReportDataWriter::_duplicate(sub_writer))
25 {
26 }
OpenDDS::DCPS::SubscriberReportDataWriter_var sub_writer_

◆ ~SubscriberMonitorImpl()

OpenDDS::DCPS::SubscriberMonitorImpl::~SubscriberMonitorImpl ( )
virtual

Definition at line 28 of file SubscriberMonitorImpl.cpp.

29 {
30 }

Member Function Documentation

◆ report()

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

Implements OpenDDS::DCPS::Monitor.

Definition at line 33 of file SubscriberMonitorImpl.cpp.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::SubscriberReport::dp_id, OpenDDS::DCPS::DomainParticipantImpl::get_id(), OpenDDS::DCPS::SubscriberImpl::get_instance_handle(), OpenDDS::DCPS::SubscriberImpl::get_participant(), OpenDDS::DCPS::SubscriberImpl::get_subscription_ids(), OpenDDS::DCPS::SubscriberReport::handle, DDS::HANDLE_NIL, CORBA::is_nil(), LM_ERROR, OPENDDS_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::SubscriberReport::readers, sub_, sub_writer_, and OpenDDS::DCPS::SubscriberReport::transport_id.

33  {
34  if (!CORBA::is_nil(this->sub_writer_.in())) {
35  SubscriberReport report;
36  report.handle = sub_->get_instance_handle();
37  DDS::DomainParticipant_var dp = sub_->get_participant();
38  OpenDDS::DCPS::DomainParticipantImpl* dpi = dynamic_cast<DomainParticipantImpl*>(dp.in());
39  if (!dpi) {
40  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) SubscriberMonitorImpl::report():")
41  ACE_TEXT(" failed to obtain DomainParticipantImpl.\n")));
42  return;
43  }
44  report.dp_id = dpi->get_id();
45  TransportImpl_rch ti; //TODO: transport = sub_->get_transport_impl();
46  // TODO: remove transport_id and replace with name
47  report.transport_id = 0;
48  SubscriberImpl::SubscriptionIdVec readers;
49  sub_->get_subscription_ids(readers);
50  CORBA::ULong length = 0;
51  report.readers.length(static_cast<CORBA::ULong>(readers.size()));
52  for (SubscriberImpl::SubscriptionIdVec::iterator iter = readers.begin();
53  iter != readers.end();
54  ++iter) {
55  report.readers[length++] = *iter;
56  }
57  this->sub_writer_->write(report, DDS::HANDLE_NIL);
58  }
59 }
#define ACE_ERROR(X)
RcHandle< TransportImpl > TransportImpl_rch
The type definition for the smart-pointer to the underlying type.
OpenDDS::DCPS::SubscriberReportDataWriter_var sub_writer_
virtual DDS::InstanceHandle_t get_instance_handle()
const InstanceHandle_t HANDLE_NIL
Implements the OpenDDS::DCPS::DomainParticipant interfaces.
void get_subscription_ids(SubscriptionIdVec &subs)
ACE_CDR::ULong ULong
ACE_TEXT("TCP_Factory")
virtual DDS::DomainParticipant_ptr get_participant()
Boolean is_nil(T x)

Member Data Documentation

◆ sub_

SubscriberImpl* OpenDDS::DCPS::SubscriberMonitorImpl::sub_
private

Definition at line 32 of file SubscriberMonitorImpl.h.

Referenced by report().

◆ sub_writer_

OpenDDS::DCPS::SubscriberReportDataWriter_var OpenDDS::DCPS::SubscriberMonitorImpl::sub_writer_
private

Definition at line 33 of file SubscriberMonitorImpl.h.

Referenced by report().


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