#include <PublisherMonitorImpl.h>
Public Member Functions | |
PublisherMonitorImpl (PublisherImpl *pub, OpenDDS::DCPS::PublisherReportDataWriter_ptr pub_writer) | |
virtual | ~PublisherMonitorImpl () |
virtual void | report () |
Private Attributes | |
PublisherImpl * | pub_ |
OpenDDS::DCPS::PublisherReportDataWriter_var | pub_writer_ |
Definition at line 24 of file PublisherMonitorImpl.h.
OpenDDS::DCPS::PublisherMonitorImpl::PublisherMonitorImpl | ( | PublisherImpl * | pub, | |
OpenDDS::DCPS::PublisherReportDataWriter_ptr | pub_writer | |||
) |
Definition at line 21 of file PublisherMonitorImpl.cpp.
References _duplicate().
00023 : pub_(pub), 00024 pub_writer_(PublisherReportDataWriter::_duplicate(pub_writer)) 00025 { 00026 }
OpenDDS::DCPS::PublisherMonitorImpl::~PublisherMonitorImpl | ( | ) | [virtual] |
Definition at line 28 of file PublisherMonitorImpl.cpp.
void OpenDDS::DCPS::PublisherMonitorImpl::report | ( | void | ) | [virtual] |
Implements OpenDDS::DCPS::Monitor.
Definition at line 33 of file PublisherMonitorImpl.cpp.
References 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, pub_, pub_writer_, OpenDDS::DCPS::PublisherReport::transport_id, and OpenDDS::DCPS::PublisherReport::writers.
00033 { 00034 if (!CORBA::is_nil(this->pub_writer_.in())) { 00035 PublisherReport report; 00036 report.handle = pub_->get_instance_handle(); 00037 DDS::DomainParticipant_var dp = pub_->get_participant(); 00038 OpenDDS::DCPS::DomainParticipantImpl* dpi = dynamic_cast<DomainParticipantImpl*>(dp.in()); 00039 if (!dpi) { 00040 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) PublisherMonitorImpl::report():") 00041 ACE_TEXT(" failed to obtain DomainParticipantImpl.\n"))); 00042 return; 00043 } 00044 report.dp_id = dpi->get_id(); 00045 TransportImpl_rch ti; //TODO: transport = pub_->get_transport_impl(); 00046 // TODO: remove/replace 00047 report.transport_id = 0; 00048 PublisherImpl::PublicationIdVec writers; 00049 pub_->get_publication_ids(writers); 00050 CORBA::ULong length = 0; 00051 report.writers.length(static_cast<CORBA::ULong>(writers.size())); 00052 for (PublisherImpl::PublicationIdVec::iterator iter = writers.begin(); 00053 iter != writers.end(); 00054 ++iter) { 00055 report.writers[length++] = *iter; 00056 } 00057 this->pub_writer_->write(report, DDS::HANDLE_NIL); 00058 } 00059 }
Definition at line 32 of file PublisherMonitorImpl.h.
Referenced by report().
OpenDDS::DCPS::PublisherReportDataWriter_var OpenDDS::DCPS::PublisherMonitorImpl::pub_writer_ [private] |
Definition at line 33 of file PublisherMonitorImpl.h.
Referenced by report().