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

#include <TopicMonitorImpl.h>

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

Public Member Functions

 TopicMonitorImpl (TopicImpl *topic, OpenDDS::DCPS::TopicReportDataWriter_ptr topic_writer)
 
virtual ~TopicMonitorImpl ()
 
virtual void report ()
 
- Public Member Functions inherited from OpenDDS::DCPS::Monitor
 Monitor ()
 
virtual ~Monitor ()
 

Private Attributes

TopicImpltopic_
 
OpenDDS::DCPS::TopicReportDataWriter_var topic_writer_
 

Detailed Description

Definition at line 24 of file TopicMonitorImpl.h.

Constructor & Destructor Documentation

◆ TopicMonitorImpl()

OpenDDS::DCPS::TopicMonitorImpl::TopicMonitorImpl ( TopicImpl topic,
OpenDDS::DCPS::TopicReportDataWriter_ptr  topic_writer 
)

Definition at line 21 of file TopicMonitorImpl.cpp.

References _duplicate().

23  : topic_(topic),
24  topic_writer_(TopicReportDataWriter::_duplicate(topic_writer))
25 {
26 }
OpenDDS::DCPS::TopicReportDataWriter_var topic_writer_

◆ ~TopicMonitorImpl()

OpenDDS::DCPS::TopicMonitorImpl::~TopicMonitorImpl ( )
virtual

Definition at line 28 of file TopicMonitorImpl.cpp.

29 {
30 }

Member Function Documentation

◆ report()

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

Implements OpenDDS::DCPS::Monitor.

Definition at line 33 of file TopicMonitorImpl.cpp.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::TopicReport::dp_id, OpenDDS::DCPS::TopicImpl::get_id(), OpenDDS::DCPS::DomainParticipantImpl::get_id(), OpenDDS::DCPS::TopicDescriptionImpl::get_name(), OpenDDS::DCPS::TopicDescriptionImpl::get_participant(), OpenDDS::DCPS::TopicDescriptionImpl::get_type_name(), DDS::HANDLE_NIL, CORBA::is_nil(), LM_ERROR, OPENDDS_END_VERSIONED_NAMESPACE_DECL, topic_, OpenDDS::DCPS::TopicReport::topic_id, OpenDDS::DCPS::TopicReport::topic_name, topic_writer_, and OpenDDS::DCPS::TopicReport::type_name.

33  {
34  if (!CORBA::is_nil(this->topic_writer_.in())) {
35  TopicReport report;
36  DDS::DomainParticipant_var dp = this->topic_->get_participant();
37  DomainParticipantImpl* dp_impl =
38  dynamic_cast<DomainParticipantImpl*>(dp.in());
39  if (dp_impl) {
40  report.dp_id = dp_impl->get_id();
41  report.topic_id = this->topic_->get_id();
42  report.topic_name = this->topic_->get_name();
43  report.type_name = this->topic_->get_type_name();
44  this->topic_writer_->write(report, DDS::HANDLE_NIL);
45  } else {
46  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) TopicMonitorImpl::report(): ")
47  ACE_TEXT("failed to obtain DomainParticipantImpl.\n")));
48  }
49  }
50 }
#define ACE_ERROR(X)
const InstanceHandle_t HANDLE_NIL
virtual DDS::DomainParticipant_ptr get_participant()
OpenDDS::DCPS::TopicReportDataWriter_var topic_writer_
GUID_t get_id() const
Definition: TopicImpl.cpp:172
ACE_TEXT("TCP_Factory")
Boolean is_nil(T x)

Member Data Documentation

◆ topic_

TopicImpl* OpenDDS::DCPS::TopicMonitorImpl::topic_
private

Definition at line 32 of file TopicMonitorImpl.h.

Referenced by report().

◆ topic_writer_

OpenDDS::DCPS::TopicReportDataWriter_var OpenDDS::DCPS::TopicMonitorImpl::topic_writer_
private

Definition at line 33 of file TopicMonitorImpl.h.

Referenced by report().


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