#include <SubscriberMonitorImpl.h>
Public Member Functions | |
SubscriberMonitorImpl (SubscriberImpl *sub, OpenDDS::DCPS::SubscriberReportDataWriter_ptr sub_writer) | |
virtual | ~SubscriberMonitorImpl () |
virtual void | report () |
Private Attributes | |
SubscriberImpl * | sub_ |
OpenDDS::DCPS::SubscriberReportDataWriter_var | sub_writer_ |
Definition at line 24 of file SubscriberMonitorImpl.h.
OpenDDS::DCPS::SubscriberMonitorImpl::SubscriberMonitorImpl | ( | SubscriberImpl * | sub, | |
OpenDDS::DCPS::SubscriberReportDataWriter_ptr | sub_writer | |||
) |
Definition at line 21 of file SubscriberMonitorImpl.cpp.
References _duplicate().
00023 : sub_(sub), 00024 sub_writer_(SubscriberReportDataWriter::_duplicate(sub_writer)) 00025 { 00026 }
OpenDDS::DCPS::SubscriberMonitorImpl::~SubscriberMonitorImpl | ( | ) | [virtual] |
Definition at line 28 of file SubscriberMonitorImpl.cpp.
void OpenDDS::DCPS::SubscriberMonitorImpl::report | ( | void | ) | [virtual] |
Implements OpenDDS::DCPS::Monitor.
Definition at line 33 of file SubscriberMonitorImpl.cpp.
References 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::DCPS::SubscriberReport::readers, sub_, sub_writer_, and OpenDDS::DCPS::SubscriberReport::transport_id.
00033 { 00034 if (!CORBA::is_nil(this->sub_writer_.in())) { 00035 SubscriberReport report; 00036 report.handle = sub_->get_instance_handle(); 00037 DDS::DomainParticipant_var dp = sub_->get_participant(); 00038 OpenDDS::DCPS::DomainParticipantImpl* dpi = dynamic_cast<DomainParticipantImpl*>(dp.in()); 00039 if (!dpi) { 00040 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) SubscriberMonitorImpl::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 = sub_->get_transport_impl(); 00046 // TODO: remove transport_id and replace with name 00047 report.transport_id = 0; 00048 SubscriberImpl::SubscriptionIdVec readers; 00049 sub_->get_subscription_ids(readers); 00050 CORBA::ULong length = 0; 00051 report.readers.length(static_cast<CORBA::ULong>(readers.size())); 00052 for (SubscriberImpl::SubscriptionIdVec::iterator iter = readers.begin(); 00053 iter != readers.end(); 00054 ++iter) { 00055 report.readers[length++] = *iter; 00056 } 00057 this->sub_writer_->write(report, DDS::HANDLE_NIL); 00058 } 00059 }
Definition at line 32 of file SubscriberMonitorImpl.h.
Referenced by report().
OpenDDS::DCPS::SubscriberReportDataWriter_var OpenDDS::DCPS::SubscriberMonitorImpl::sub_writer_ [private] |
Definition at line 33 of file SubscriberMonitorImpl.h.
Referenced by report().