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

#include <PublisherMonitorImpl.h>

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

Public Member Functions

 PublisherMonitorImpl (PublisherImpl *pub, OpenDDS::DCPS::PublisherReportDataWriter_ptr pub_writer)
 
virtual ~PublisherMonitorImpl ()
 
virtual void report ()
 
- Public Member Functions inherited from OpenDDS::DCPS::Monitor
 Monitor ()
 
virtual ~Monitor ()
 

Private Attributes

PublisherImplpub_
 
OpenDDS::DCPS::PublisherReportDataWriter_var pub_writer_
 

Detailed Description

Definition at line 24 of file PublisherMonitorImpl.h.

Constructor & Destructor Documentation

◆ PublisherMonitorImpl()

OpenDDS::DCPS::PublisherMonitorImpl::PublisherMonitorImpl ( PublisherImpl pub,
OpenDDS::DCPS::PublisherReportDataWriter_ptr  pub_writer 
)

Definition at line 21 of file PublisherMonitorImpl.cpp.

References _duplicate().

23  : pub_(pub),
24  pub_writer_(PublisherReportDataWriter::_duplicate(pub_writer))
25 {
26 }
OpenDDS::DCPS::PublisherReportDataWriter_var pub_writer_

◆ ~PublisherMonitorImpl()

OpenDDS::DCPS::PublisherMonitorImpl::~PublisherMonitorImpl ( )
virtual

Definition at line 28 of file PublisherMonitorImpl.cpp.

29 {
30 }

Member Function Documentation

◆ report()

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

Implements OpenDDS::DCPS::Monitor.

Definition at line 33 of file PublisherMonitorImpl.cpp.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::PublisherReport::dp_id, OpenDDS::DCPS::DomainParticipantImpl::get_id(), OpenDDS::DCPS::PublisherImpl::get_instance_handle(), OpenDDS::DCPS::PublisherImpl::get_participant(), OpenDDS::DCPS::PublisherImpl::get_publication_ids(), OpenDDS::DCPS::PublisherReport::handle, DDS::HANDLE_NIL, CORBA::is_nil(), LM_ERROR, OPENDDS_END_VERSIONED_NAMESPACE_DECL, pub_, pub_writer_, OpenDDS::DCPS::PublisherReport::transport_id, and OpenDDS::DCPS::PublisherReport::writers.

33  {
34  if (!CORBA::is_nil(this->pub_writer_.in())) {
35  PublisherReport report;
36  report.handle = pub_->get_instance_handle();
37  DDS::DomainParticipant_var dp = pub_->get_participant();
38  OpenDDS::DCPS::DomainParticipantImpl* dpi = dynamic_cast<DomainParticipantImpl*>(dp.in());
39  if (!dpi) {
40  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) PublisherMonitorImpl::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 = pub_->get_transport_impl();
46  // TODO: remove/replace
47  report.transport_id = 0;
48  PublisherImpl::PublicationIdVec writers;
49  pub_->get_publication_ids(writers);
50  CORBA::ULong length = 0;
51  report.writers.length(static_cast<CORBA::ULong>(writers.size()));
52  for (PublisherImpl::PublicationIdVec::iterator iter = writers.begin();
53  iter != writers.end();
54  ++iter) {
55  report.writers[length++] = *iter;
56  }
57  this->pub_writer_->write(report, DDS::HANDLE_NIL);
58  }
59 }
void get_publication_ids(PublicationIdVec &pubs)
#define ACE_ERROR(X)
RcHandle< TransportImpl > TransportImpl_rch
The type definition for the smart-pointer to the underlying type.
OpenDDS::DCPS::PublisherReportDataWriter_var pub_writer_
const InstanceHandle_t HANDLE_NIL
Implements the OpenDDS::DCPS::DomainParticipant interfaces.
ACE_CDR::ULong ULong
virtual DDS::InstanceHandle_t get_instance_handle()
ACE_TEXT("TCP_Factory")
virtual DDS::DomainParticipant_ptr get_participant()
Boolean is_nil(T x)

Member Data Documentation

◆ pub_

PublisherImpl* OpenDDS::DCPS::PublisherMonitorImpl::pub_
private

Definition at line 32 of file PublisherMonitorImpl.h.

Referenced by report().

◆ pub_writer_

OpenDDS::DCPS::PublisherReportDataWriter_var OpenDDS::DCPS::PublisherMonitorImpl::pub_writer_
private

Definition at line 33 of file PublisherMonitorImpl.h.

Referenced by report().


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