OpenDDS  Snapshot(2021/07/09-10:21)
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::MonitorFactoryImpl Class Reference

Full implementation of the MonitorFactoryImpl. More...

#include <MonitorFactoryImpl.h>

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

Public Member Functions

 MonitorFactoryImpl ()
 
virtual ~MonitorFactoryImpl ()
 
virtual Monitorcreate_sp_monitor (Service_Participant *sp)
 Factory function to create a service participant monitor object. More...
 
virtual Monitorcreate_dp_monitor (DomainParticipantImpl *dp)
 Factory function to create a domain participant monitor object. More...
 
virtual Monitorcreate_topic_monitor (TopicImpl *topic)
 Factory function to create a topic monitor object. More...
 
virtual Monitorcreate_publisher_monitor (PublisherImpl *publisher)
 Factory function to create a publisher monitor object. More...
 
virtual Monitorcreate_subscriber_monitor (SubscriberImpl *subscriber)
 Factory function to create a subscriber monitor object. More...
 
virtual Monitorcreate_data_writer_monitor (DataWriterImpl *dw)
 Factory function to create a data writer monitor object. More...
 
virtual Monitorcreate_data_writer_periodic_monitor (DataWriterImpl *dw)
 Factory function to create a data writer periodic monitor object. More...
 
virtual Monitorcreate_data_reader_monitor (DataReaderImpl *dr)
 Factory function to create a data reader monitor object. More...
 
virtual Monitorcreate_data_reader_periodic_monitor (DataReaderImpl *dr)
 Factory function to create a data reader periodic monitor object. More...
 
virtual Monitorcreate_transport_monitor (TransportImpl *transport)
 Factory function to create a transport monitor object. More...
 
virtual void initialize ()
 Initialize the monitor (required to report data) More...
 
ServiceParticipantReportDataWriter_ptr get_sp_writer ()
 
- Public Member Functions inherited from OpenDDS::DCPS::MonitorFactory
 MonitorFactory ()
 
virtual ~MonitorFactory ()
 
- Public Member Functions inherited from ACE_Service_Object
 ACE_Service_Object (ACE_Reactor *=0)
 
virtual ~ACE_Service_Object (void)
 
virtual int suspend (void)
 
virtual int resume (void)
 
- Public Member Functions inherited from ACE_Event_Handler
virtual ~ACE_Event_Handler (void)
 
virtual ACE_HANDLE get_handle (void) const
 
virtual void set_handle (ACE_HANDLE)
 
virtual int priority (void) const
 
virtual void priority (int priority)
 
virtual int handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_timeout (const ACE_Time_Value &current_time, const void *act=0)
 
virtual int handle_exit (ACE_Process *)
 
virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
 
virtual int handle_signal (int signum, siginfo_t *=0, ucontext_t *=0)
 
virtual int resume_handler (void)
 
virtual int handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual int handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual void reactor (ACE_Reactor *reactor)
 
virtual ACE_Reactorreactor (void) const
 
virtual ACE_Reactor_Timer_Interfacereactor_timer_interface (void) const
 
virtual Reference_Count add_reference (void)
 
virtual Reference_Count remove_reference (void)
 
Reference_Counting_Policyreference_counting_policy (void)
 
- Public Member Functions inherited from ACE_Shared_Object
 ACE_Shared_Object (void)
 
virtual ~ACE_Shared_Object (void)
 
virtual int init (int argc, ACE_TCHAR *argv[])
 
virtual int fini (void)
 
virtual int info (ACE_TCHAR **info_string, size_t length=0) const
 

Static Public Member Functions

static int service_initialize ()
 
- Static Public Member Functions inherited from OpenDDS::DCPS::MonitorFactory
static int service_initialize ()
 
- Static Public Member Functions inherited from ACE_Event_Handler
static ACE_THR_FUNC_RETURN read_adapter (void *event_handler)
 
static int register_stdin_handler (ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags=THR_DETACHED)
 
static int remove_stdin_handler (ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr)
 

Private Member Functions

DDS::DataWriter_ptr create_data_writer (DDS::DomainParticipant_ptr participant, DDS::Publisher_ptr publisher, const char *type_name, const char *topic_name, const DDS::DataWriterQos &dw_qos)
 

Private Attributes

ServiceParticipantReportDataWriter_var sp_writer_
 
DomainParticipantReportDataWriter_var dp_writer_
 
TopicReportDataWriter_var topic_writer_
 
PublisherReportDataWriter_var pub_writer_
 
SubscriberReportDataWriter_var sub_writer_
 
DataWriterReportDataWriter_var dw_writer_
 
DataWriterPeriodicReportDataWriter_var dw_per_writer_
 
DataReaderReportDataWriter_var dr_writer_
 
DataReaderPeriodicReportDataWriter_var dr_per_writer_
 
TransportReportDataWriter_var transport_writer_
 

Additional Inherited Members

- Public Types inherited from ACE_Event_Handler
typedef long Reference_Count
 
- Public Attributes inherited from ACE_Service_Object
 ACE_ALLOC_HOOK_DECLARE
 
- Public Attributes inherited from ACE_Event_Handler
 LO_PRIORITY
 
 HI_PRIORITY
 
 NULL_MASK
 
 READ_MASK
 
 WRITE_MASK
 
 EXCEPT_MASK
 
 ACCEPT_MASK
 
 CONNECT_MASK
 
 TIMER_MASK
 
 QOS_MASK
 
 GROUP_QOS_MASK
 
 SIGNAL_MASK
 
 ALL_EVENTS_MASK
 
 RWE_MASK
 
 DONT_CALL
 
 ACE_EVENT_HANDLER_NOT_RESUMED
 
 ACE_REACTOR_RESUMES_HANDLER
 
 ACE_APPLICATION_RESUMES_HANDLER
 
- Protected Types inherited from ACE_Event_Handler
typedef ACE_Atomic_Op< ACE_SYNCH_MUTEX, Reference_CountAtomic_Reference_Count
 
- Protected Member Functions inherited from ACE_Event_Handler
 ACE_Event_Handler (ACE_Reactor *=0, int priority=ACE_Event_Handler::LO_PRIORITY)
 
- Protected Attributes inherited from ACE_Event_Handler
Atomic_Reference_Count reference_count_
 

Detailed Description

Full implementation of the MonitorFactoryImpl.

Full version of this library is implemented by the monitor lib.

Definition at line 32 of file MonitorFactoryImpl.h.

Constructor & Destructor Documentation

◆ MonitorFactoryImpl()

OpenDDS::DCPS::MonitorFactoryImpl::MonitorFactoryImpl ( )

Definition at line 33 of file MonitorFactoryImpl.cpp.

34 {
35 }

◆ ~MonitorFactoryImpl()

OpenDDS::DCPS::MonitorFactoryImpl::~MonitorFactoryImpl ( )
virtual

Definition at line 37 of file MonitorFactoryImpl.cpp.

38 {
39 }

Member Function Documentation

◆ create_data_reader_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_data_reader_monitor ( DataReaderImpl dr)
virtual

Factory function to create a data reader monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 93 of file MonitorFactoryImpl.cpp.

References dr_writer_.

94 {
95  return new DRMonitorImpl(dr, this->dr_writer_);
96 }
DataReaderReportDataWriter_var dr_writer_

◆ create_data_reader_periodic_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_data_reader_periodic_monitor ( DataReaderImpl dr)
virtual

Factory function to create a data reader periodic monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 99 of file MonitorFactoryImpl.cpp.

References dr_per_writer_.

100 {
101  return new DRPeriodicMonitorImpl(dr, this->dr_per_writer_);
102 }
DataReaderPeriodicReportDataWriter_var dr_per_writer_

◆ create_data_writer()

DDS::DataWriter_ptr OpenDDS::DCPS::MonitorFactoryImpl::create_data_writer ( DDS::DomainParticipant_ptr  participant,
DDS::Publisher_ptr  publisher,
const char *  type_name,
const char *  topic_name,
const DDS::DataWriterQos dw_qos 
)
private

Definition at line 111 of file MonitorFactoryImpl.cpp.

References ACE_DEBUG, OpenDDS::DCPS::DEFAULT_STATUS_MASK, CORBA::is_nil(), LM_DEBUG, and TOPIC_QOS_DEFAULT.

Referenced by initialize().

116 {
117  DDS::Topic_var topic =
118  participant->create_topic(topic_name,
119  type_name,
121  DDS::TopicListener::_nil(),
123  if (CORBA::is_nil(topic)) {
124  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::create_data_writer(): Failed to create topic, name = %C\n", topic_name));
125  }
126  DDS::DataWriter_var writer =
127  publisher->create_datawriter(topic.in(),
128  dw_qos,
129  DDS::DataWriterListener::_nil(),
131  if (CORBA::is_nil(writer)) {
132  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::create_data_writer(): Failed to create data writer\n"));
133  }
134 
135  return writer._retn();
136 }
#define ACE_DEBUG(X)
Boolean is_nil(T x)
#define TOPIC_QOS_DEFAULT
const DDS::StatusMask DEFAULT_STATUS_MASK

◆ create_data_writer_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_data_writer_monitor ( DataWriterImpl dw)
virtual

Factory function to create a data writer monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 81 of file MonitorFactoryImpl.cpp.

References dw_writer_.

82 {
83  return new DWMonitorImpl(dw, this->dw_writer_);
84 }
DataWriterReportDataWriter_var dw_writer_

◆ create_data_writer_periodic_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_data_writer_periodic_monitor ( DataWriterImpl dw)
virtual

Factory function to create a data writer periodic monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 87 of file MonitorFactoryImpl.cpp.

References dw_per_writer_.

88 {
89  return new DWPeriodicMonitorImpl(dw, this->dw_per_writer_);
90 }
DataWriterPeriodicReportDataWriter_var dw_per_writer_

◆ create_dp_monitor()

Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_dp_monitor ( DomainParticipantImpl dp)
virtual

Factory function to create a domain participant monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 48 of file MonitorFactoryImpl.cpp.

References dp_writer_, OpenDDS::DCPS::DomainParticipantImpl::get_domain_id(), and OpenDDS::DCPS::MONITOR_DOMAIN_ID.

49 {
50  if (dp->get_domain_id() == MONITOR_DOMAIN_ID) {
51  return 0;
52  }
53  return new DPMonitorImpl(dp, this->dp_writer_);
54 }
DomainParticipantReportDataWriter_var dp_writer_
const long MONITOR_DOMAIN_ID
Definition: monitor.idl:13

◆ create_publisher_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_publisher_monitor ( PublisherImpl publisher)
virtual

Factory function to create a publisher monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 69 of file MonitorFactoryImpl.cpp.

References pub_writer_.

70 {
71  return new PublisherMonitorImpl(pub, this->pub_writer_);
72 }
PublisherReportDataWriter_var pub_writer_

◆ create_sp_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_sp_monitor ( Service_Participant sp)
virtual

Factory function to create a service participant monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 42 of file MonitorFactoryImpl.cpp.

43 {
44  return new SPMonitorImpl(this, sp);
45 }

◆ create_subscriber_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_subscriber_monitor ( SubscriberImpl subscriber)
virtual

Factory function to create a subscriber monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 75 of file MonitorFactoryImpl.cpp.

References sub_writer_.

76 {
77  return new SubscriberMonitorImpl(sub, this->sub_writer_);
78 }
SubscriberReportDataWriter_var sub_writer_

◆ create_topic_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_topic_monitor ( TopicImpl topic)
virtual

Factory function to create a topic monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 63 of file MonitorFactoryImpl.cpp.

References topic_writer_.

64 {
65  return new TopicMonitorImpl(topic, this->topic_writer_);
66 }
TopicReportDataWriter_var topic_writer_

◆ create_transport_monitor()

OpenDDS::DCPS::Monitor * OpenDDS::DCPS::MonitorFactoryImpl::create_transport_monitor ( TransportImpl transport)
virtual

Factory function to create a transport monitor object.

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 105 of file MonitorFactoryImpl.cpp.

References transport_writer_.

106 {
107  return new TransportMonitorImpl(transport, this->transport_writer_);
108 }
TransportReportDataWriter_var transport_writer_

◆ get_sp_writer()

ServiceParticipantReportDataWriter_ptr OpenDDS::DCPS::MonitorFactoryImpl::get_sp_writer ( )

Definition at line 57 of file MonitorFactoryImpl.cpp.

References sp_writer_.

Referenced by OpenDDS::DCPS::SPMonitorImpl::report().

58 {
59  return ServiceParticipantReportDataWriter::_duplicate(this->sp_writer_);
60 }
ServiceParticipantReportDataWriter_var sp_writer_

◆ initialize()

void OpenDDS::DCPS::MonitorFactoryImpl::initialize ( void  )
virtual

Initialize the monitor (required to report data)

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 139 of file MonitorFactoryImpl.cpp.

References ACE_DEBUG, ACE_TEXT(), OpenDDS::DCPS::TransportRegistry::bind_config(), OpenDDS::DCPS::TransportRegistry::create_config(), create_data_writer(), OpenDDS::DCPS::TransportRegistry::create_inst(), OpenDDS::DCPS::DATA_READER_MONITOR_TOPIC, OpenDDS::DCPS::DATA_READER_PERIODIC_MONITOR_TOPIC, OpenDDS::DCPS::DATA_WRITER_MONITOR_TOPIC, OpenDDS::DCPS::DATA_WRITER_PERIODIC_MONITOR_TOPIC, OpenDDS::DCPS::TransportRegistry::DEFAULT_INST_PREFIX, OpenDDS::DCPS::DEFAULT_STATUS_MASK, OpenDDS::DCPS::DOMAIN_PARTICIPANT_MONITOR_TOPIC, dp_writer_, dr_per_writer_, dr_writer_, DDS::DataWriterQos::durability, dw_per_writer_, dw_writer_, TAO::String_var< charT >::in(), OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::TransportRegistry::instance(), OpenDDS::DCPS::TransportConfig::instances_, CORBA::is_nil(), OpenDDS::DCPS::RcHandle< T >::is_nil(), DDS::DurabilityQosPolicy::kind, LM_DEBUG, OpenDDS::DCPS::MONITOR_DOMAIN_ID, PARTICIPANT_QOS_DEFAULT, pub_writer_, OpenDDS::DCPS::PUBLISHER_MONITOR_TOPIC, PUBLISHER_QOS_DEFAULT, DDS::RETCODE_OK, OpenDDS::DCPS::SERVICE_PARTICIPANT_MONITOR_TOPIC, sp_writer_, sub_writer_, OpenDDS::DCPS::SUBSCRIBER_MONITOR_TOPIC, TheServiceParticipant, TheTransportRegistry, OpenDDS::DCPS::TOPIC_MONITOR_TOPIC, topic_writer_, DDS::TRANSIENT_LOCAL_DURABILITY_QOS, OpenDDS::DCPS::TRANSPORT_MONITOR_TOPIC, and transport_writer_.

140 {
141  DDS::DomainParticipantFactory_var dpf =
142  TheServiceParticipant->get_domain_participant_factory();
143  DDS::DomainParticipant_var participant =
144  dpf->create_participant(MONITOR_DOMAIN_ID,
146  DDS::DomainParticipantListener::_nil(),
148  if (CORBA::is_nil(participant.in())) {
149  ACE_DEBUG((LM_DEBUG,
150  ACE_TEXT("ERROR: %N:%l: MonitorFactoryImpl::initialize() -")
151  ACE_TEXT(" create_participant failed!\n")));
152  }
153 
154  DDS::Publisher_var publisher =
155  participant->create_publisher(PUBLISHER_QOS_DEFAULT,
156  DDS::PublisherListener::_nil(),
158 
159  static const std::string config_name = TransportRegistry::DEFAULT_INST_PREFIX
160  + std::string("MonitorBITTransportConfig");
162  TheTransportRegistry->get_config (config_name);
163  if (config.is_nil ())
164  {
165  config = TransportRegistry::instance()->create_config(config_name);
166 
167  std::string inst_name = TransportRegistry::DEFAULT_INST_PREFIX
168  + std::string("FederationBITTCPTransportInst");
169  TransportInst_rch inst =
170  TransportRegistry::instance()->create_inst(inst_name, "tcp");
171  config->instances_.push_back(inst);
172  }
173 
174  TransportRegistry::instance()->bind_config(config, publisher.in());
175 
176  DDS::DataWriter_var writer;
177  DDS::DataWriterQos dw_qos;
178  publisher->get_default_datawriter_qos(dw_qos);
180 
181  OpenDDS::DCPS::ServiceParticipantReportTypeSupport_var sp_ts =
182  new OpenDDS::DCPS::ServiceParticipantReportTypeSupportImpl();
183  ::DDS::ReturnCode_t ret = sp_ts->register_type(participant.in(), "");
184  if (DDS::RETCODE_OK == ret) {
185  CORBA::String_var sp_type_name = sp_ts->get_type_name();
186  writer = create_data_writer(participant.in(),
187  publisher.in(),
188  sp_type_name.in(),
190  dw_qos);
191  this->sp_writer_ =
192  OpenDDS::DCPS::ServiceParticipantReportDataWriter::_narrow(writer.in());
193  if (CORBA::is_nil(this->sp_writer_)) {
194  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow sp_writer\n"));
195  }
196  } else {
197  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register sp_ts\n"));
198  }
199 
200  OpenDDS::DCPS::DomainParticipantReportTypeSupport_var dp_ts =
201  new OpenDDS::DCPS::DomainParticipantReportTypeSupportImpl();
202  ret = dp_ts->register_type(participant.in(), "");
203  if (DDS::RETCODE_OK == ret) {
204  CORBA::String_var dp_type_name = dp_ts->get_type_name();
205  writer = create_data_writer(participant.in(),
206  publisher.in(),
207  dp_type_name.in(),
209  dw_qos);
210  this->dp_writer_ =
211  OpenDDS::DCPS::DomainParticipantReportDataWriter::_narrow(writer.in());
212  if (CORBA::is_nil(this->dp_writer_)) {
213  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow dp_writer\n"));
214  }
215  } else {
216  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register dp_ts\n"));
217  }
218 
219  OpenDDS::DCPS::TopicReportTypeSupport_var topic_ts =
220  new OpenDDS::DCPS::TopicReportTypeSupportImpl();
221  ret = topic_ts->register_type(participant.in(), "");
222  if (DDS::RETCODE_OK == ret) {
223  CORBA::String_var topic_type_name = topic_ts->get_type_name();
224  writer = create_data_writer(participant.in(),
225  publisher.in(),
226  topic_type_name.in(),
228  dw_qos);
229  this->topic_writer_ =
230  OpenDDS::DCPS::TopicReportDataWriter::_narrow(writer.in());
231  if (CORBA::is_nil(this->topic_writer_)) {
232  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow topic_writer\n"));
233  }
234  } else {
235  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register topic_ts\n"));
236  }
237 
238  OpenDDS::DCPS::PublisherReportTypeSupport_var pub_ts =
239  new OpenDDS::DCPS::PublisherReportTypeSupportImpl();
240  ret = pub_ts->register_type(participant.in(), "");
241  if (DDS::RETCODE_OK == ret) {
242  CORBA::String_var pub_type_name = pub_ts->get_type_name();
243  writer = create_data_writer(participant.in(),
244  publisher.in(),
245  pub_type_name.in(),
247  dw_qos);
248  this->pub_writer_ =
249  OpenDDS::DCPS::PublisherReportDataWriter::_narrow(writer.in());
250  if (CORBA::is_nil(this->pub_writer_)) {
251  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow pub_writer\n"));
252  }
253  } else {
254  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register pub_ts\n"));
255  }
256 
257  OpenDDS::DCPS::SubscriberReportTypeSupport_var sub_ts =
258  new OpenDDS::DCPS::SubscriberReportTypeSupportImpl();
259  ret = sub_ts->register_type(participant.in(), "");
260  if (DDS::RETCODE_OK == ret) {
261  CORBA::String_var sub_type_name = sub_ts->get_type_name();
262  writer = create_data_writer(participant.in(),
263  publisher.in(),
264  sub_type_name.in(),
266  dw_qos);
267  this->sub_writer_ =
268  OpenDDS::DCPS::SubscriberReportDataWriter::_narrow(writer.in());
269  if (CORBA::is_nil(this->sub_writer_)) {
270  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow sub_writer\n"));
271  }
272  } else {
273  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register sub_ts\n"));
274  }
275 
276  OpenDDS::DCPS::DataWriterReportTypeSupport_var dw_ts =
277  new OpenDDS::DCPS::DataWriterReportTypeSupportImpl();
278  ret = dw_ts->register_type(participant.in(), "");
279  if (DDS::RETCODE_OK == ret) {
280  CORBA::String_var dw_type_name = dw_ts->get_type_name();
281  writer = create_data_writer(participant.in(),
282  publisher.in(),
283  dw_type_name.in(),
285  dw_qos);
286  this->dw_writer_ =
287  OpenDDS::DCPS::DataWriterReportDataWriter::_narrow(writer.in());
288  if (CORBA::is_nil(this->dw_writer_)) {
289  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow dw_writer\n"));
290  }
291  } else {
292  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register sp_ts\n"));
293  }
294 
295  OpenDDS::DCPS::DataWriterPeriodicReportTypeSupport_var dw_per_ts =
296  new OpenDDS::DCPS::DataWriterPeriodicReportTypeSupportImpl();
297  ret = dw_per_ts->register_type(participant.in(), "");
298  if (DDS::RETCODE_OK == ret) {
299  CORBA::String_var dw_per_type_name = dw_per_ts->get_type_name();
300  writer = create_data_writer(participant.in(),
301  publisher.in(),
302  dw_per_type_name.in(),
304  dw_qos);
305  this->dw_per_writer_ =
306  OpenDDS::DCPS::DataWriterPeriodicReportDataWriter::_narrow(writer.in());
307  if (CORBA::is_nil(this->dw_per_writer_)) {
308  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow dw_per_writer\n"));
309  }
310  } else {
311  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register dw_per_ts\n"));
312  }
313 
314  OpenDDS::DCPS::DataReaderReportTypeSupport_var dr_ts =
315  new OpenDDS::DCPS::DataReaderReportTypeSupportImpl();
316  ret = dr_ts->register_type(participant.in(), "");
317  if (DDS::RETCODE_OK == ret) {
318  CORBA::String_var dr_type_name = dr_ts->get_type_name();
319  writer = create_data_writer(participant.in(),
320  publisher.in(),
321  dr_type_name.in(),
323  dw_qos);
324  this->dr_writer_ =
325  OpenDDS::DCPS::DataReaderReportDataWriter::_narrow(writer.in());
326  if (CORBA::is_nil(this->dr_writer_)) {
327  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow dr_writer\n"));
328  }
329  } else {
330  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register dr_ts\n"));
331  }
332 
333  OpenDDS::DCPS::DataReaderPeriodicReportTypeSupport_var dr_per_ts =
334  new OpenDDS::DCPS::DataReaderPeriodicReportTypeSupportImpl();
335  ret = dr_per_ts->register_type(participant.in(), "");
336  if (DDS::RETCODE_OK == ret) {
337  CORBA::String_var dr_per_type_name = dr_per_ts->get_type_name();
338  writer = create_data_writer(participant.in(),
339  publisher.in(),
340  dr_per_type_name.in(),
342  dw_qos);
343  this->dr_per_writer_ =
344  OpenDDS::DCPS::DataReaderPeriodicReportDataWriter::_narrow(writer.in());
345  if (CORBA::is_nil(this->dr_per_writer_)) {
346  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow dr_per_writer\n"));
347  }
348  } else {
349  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register dr_per_ts\n"));
350  }
351 
352  OpenDDS::DCPS::TransportReportTypeSupport_var transport_ts =
353  new OpenDDS::DCPS::TransportReportTypeSupportImpl();
354  ret = transport_ts->register_type(participant.in(), "");
355  if (DDS::RETCODE_OK == ret) {
356  CORBA::String_var transport_type_name = transport_ts->get_type_name();
357  writer = create_data_writer(participant.in(),
358  publisher.in(),
359  transport_type_name.in(),
361  dw_qos);
362  this->transport_writer_ =
363  OpenDDS::DCPS::TransportReportDataWriter::_narrow(writer.in());
364  if (CORBA::is_nil(this->transport_writer_)) {
365  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to narrow transport_writer\n"));
366  }
367  } else {
368  ACE_DEBUG((LM_DEBUG, "MonitorFactoryImpl::initialize(): Failed to register transport_ts\n"));
369  }
370 }
TopicReportDataWriter_var topic_writer_
#define ACE_DEBUG(X)
DataWriterPeriodicReportDataWriter_var dw_per_writer_
const string DATA_READER_MONITOR_TOPIC
Definition: monitor.idl:22
DomainParticipantReportDataWriter_var dp_writer_
Boolean is_nil(T x)
DDS::DataWriter_ptr create_data_writer(DDS::DomainParticipant_ptr participant, DDS::Publisher_ptr publisher, const char *type_name, const char *topic_name, const DDS::DataWriterQos &dw_qos)
const character_type * in(void) const
const string PUBLISHER_MONITOR_TOPIC
Definition: monitor.idl:18
const string DATA_READER_PERIODIC_MONITOR_TOPIC
Definition: monitor.idl:23
DataWriterReportDataWriter_var dw_writer_
static const char DEFAULT_INST_PREFIX[]
DurabilityQosPolicyKind kind
static TransportRegistry * instance()
Return a singleton instance of this class.
#define TheServiceParticipant
DataReaderReportDataWriter_var dr_writer_
const string SUBSCRIBER_MONITOR_TOPIC
Definition: monitor.idl:19
DurabilityQosPolicy durability
const string DATA_WRITER_MONITOR_TOPIC
Definition: monitor.idl:20
DataReaderPeriodicReportDataWriter_var dr_per_writer_
TransportConfig_rch create_config(const OPENDDS_STRING &name)
PublisherReportDataWriter_var pub_writer_
const ReturnCode_t RETCODE_OK
SubscriberReportDataWriter_var sub_writer_
#define TheTransportRegistry
ACE_TEXT("TCP_Factory")
TransportInst_rch create_inst(const OPENDDS_STRING &name, const OPENDDS_STRING &transport_type, bool wait_for_pending_load=true)
const string DOMAIN_PARTICIPANT_MONITOR_TOPIC
Definition: monitor.idl:16
ServiceParticipantReportDataWriter_var sp_writer_
#define PARTICIPANT_QOS_DEFAULT
void bind_config(const OPENDDS_STRING &name, DDS::Entity_ptr entity)
const string TRANSPORT_MONITOR_TOPIC
Definition: monitor.idl:24
const long MONITOR_DOMAIN_ID
Definition: monitor.idl:13
const DDS::StatusMask DEFAULT_STATUS_MASK
#define PUBLISHER_QOS_DEFAULT
const string TOPIC_MONITOR_TOPIC
Definition: monitor.idl:17
const string DATA_WRITER_PERIODIC_MONITOR_TOPIC
Definition: monitor.idl:21
TransportReportDataWriter_var transport_writer_
const string SERVICE_PARTICIPANT_MONITOR_TOPIC
Definition: monitor.idl:15

◆ service_initialize()

int OpenDDS::DCPS::MonitorFactoryImpl::service_initialize ( )
static

Member Data Documentation

◆ dp_writer_

DomainParticipantReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::dp_writer_
private

Definition at line 83 of file MonitorFactoryImpl.h.

Referenced by create_dp_monitor(), and initialize().

◆ dr_per_writer_

DataReaderPeriodicReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::dr_per_writer_
private

Definition at line 90 of file MonitorFactoryImpl.h.

Referenced by create_data_reader_periodic_monitor(), and initialize().

◆ dr_writer_

DataReaderReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::dr_writer_
private

Definition at line 89 of file MonitorFactoryImpl.h.

Referenced by create_data_reader_monitor(), and initialize().

◆ dw_per_writer_

DataWriterPeriodicReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::dw_per_writer_
private

Definition at line 88 of file MonitorFactoryImpl.h.

Referenced by create_data_writer_periodic_monitor(), and initialize().

◆ dw_writer_

DataWriterReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::dw_writer_
private

Definition at line 87 of file MonitorFactoryImpl.h.

Referenced by create_data_writer_monitor(), and initialize().

◆ pub_writer_

PublisherReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::pub_writer_
private

Definition at line 85 of file MonitorFactoryImpl.h.

Referenced by create_publisher_monitor(), and initialize().

◆ sp_writer_

ServiceParticipantReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::sp_writer_
private

Definition at line 82 of file MonitorFactoryImpl.h.

Referenced by get_sp_writer(), and initialize().

◆ sub_writer_

SubscriberReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::sub_writer_
private

Definition at line 86 of file MonitorFactoryImpl.h.

Referenced by create_subscriber_monitor(), and initialize().

◆ topic_writer_

TopicReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::topic_writer_
private

Definition at line 84 of file MonitorFactoryImpl.h.

Referenced by create_topic_monitor(), and initialize().

◆ transport_writer_

TransportReportDataWriter_var OpenDDS::DCPS::MonitorFactoryImpl::transport_writer_
private

Definition at line 91 of file MonitorFactoryImpl.h.

Referenced by create_transport_monitor(), and initialize().


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