OpenDDS::DCPS::TransportMonitorImpl Class Reference

#include <TransportMonitorImpl.h>

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

List of all members.

Public Member Functions

 TransportMonitorImpl (TransportImpl *transport, OpenDDS::DCPS::TransportReportDataWriter_ptr transport_writer)
virtual ~TransportMonitorImpl ()
virtual void report ()

Private Types

typedef std::vector
< TransportReport
TransportReportVec

Private Attributes

OpenDDS::DCPS::TransportReportDataWriter_var transport_writer_
std::string hostname_
pid_t pid_

Static Private Attributes

static ACE_Recursive_Thread_Mutex queue_lock_
static TransportReportVec queue_

Detailed Description

Definition at line 26 of file TransportMonitorImpl.h.


Member Typedef Documentation

Definition at line 38 of file TransportMonitorImpl.h.


Constructor & Destructor Documentation

OpenDDS::DCPS::TransportMonitorImpl::TransportMonitorImpl ( TransportImpl transport,
OpenDDS::DCPS::TransportReportDataWriter_ptr  transport_writer 
)

Definition at line 22 of file TransportMonitorImpl.cpp.

References _duplicate(), ACE_OS::getpid(), ACE_OS::hostname(), hostname_, and pid_.

00024   : transport_writer_(TransportReportDataWriter::_duplicate(transport_writer))
00025 {
00026   char host[256];
00027   ACE_OS::hostname(host, 256);
00028   hostname_ = host;
00029   pid_  = ACE_OS::getpid();
00030 }

Here is the call graph for this function:

OpenDDS::DCPS::TransportMonitorImpl::~TransportMonitorImpl (  )  [virtual]

Definition at line 32 of file TransportMonitorImpl.cpp.

00033 {
00034 }


Member Function Documentation

void OpenDDS::DCPS::TransportMonitorImpl::report ( void   )  [virtual]

Implements OpenDDS::DCPS::Monitor.

Definition at line 37 of file TransportMonitorImpl.cpp.

References DDS::HANDLE_NIL, OpenDDS::DCPS::TransportReport::host, hostname_, CORBA::is_nil(), OpenDDS::DCPS::TransportReport::pid, pid_, queue_, OpenDDS::DCPS::TransportReport::transport_id, OpenDDS::DCPS::TransportReport::transport_type, and transport_writer_.

00037                              {
00038   // ACE_DEBUG((LM_DEBUG, "TransportMonitorImpl::report()\n"));
00039   TransportReport report;
00040   report.host = this->hostname_.c_str();
00041   report.pid  = this->pid_;
00042   // TODO: remove/replace
00043   report.transport_id  = 0;
00044   report.transport_type = "";
00045   // ACE_GUARD(ACE_Recursive_Thread_Mutex, guard, queue_lock_);
00046   if (!CORBA::is_nil(this->transport_writer_.in())) {
00047     if (this->queue_.size()) {
00048       // ACE_DEBUG((LM_DEBUG, "TransportMonitorImpl::report(): popping\n"));
00049       for (unsigned int i = 0; i < this->queue_.size(); i++) {
00050         // ACE_DEBUG((LM_DEBUG, "TransportMonitorImpl::report(): writing, id = %d\n",
00051         //                      this->queue_[i].transport_id));
00052         this->transport_writer_->write(this->queue_[i], DDS::HANDLE_NIL);
00053       }
00054       this->queue_.clear();
00055     }
00056     // ACE_DEBUG((LM_DEBUG, "TransportMonitorImpl::report(): writing, id = %d\n",
00057     //                      report.transport_id));
00058     this->transport_writer_->write(report, DDS::HANDLE_NIL);
00059   } else {
00060     // ACE_DEBUG((LM_DEBUG, "TransportMonitorImpl::report(): queueing, id = %d\n",
00061     //                      report.transport_id));
00062     queue_.push_back(report);
00063   }
00064 }

Here is the call graph for this function:


Member Data Documentation

Definition at line 35 of file TransportMonitorImpl.h.

Referenced by report(), and TransportMonitorImpl().

Definition at line 36 of file TransportMonitorImpl.h.

Referenced by report(), and TransportMonitorImpl().

Definition at line 40 of file TransportMonitorImpl.h.

Referenced by report().

Definition at line 39 of file TransportMonitorImpl.h.

OpenDDS::DCPS::TransportReportDataWriter_var OpenDDS::DCPS::TransportMonitorImpl::transport_writer_ [private]

Definition at line 34 of file TransportMonitorImpl.h.

Referenced by report().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1