OpenDDS  Snapshot(2023/04/07-19:43)
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...
 
virtual void deinitialize ()
 
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

DDS::DomainParticipant_var participant_
 
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 36 of file MonitorFactoryImpl.cpp.

37 {
38 }

◆ ~MonitorFactoryImpl()

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

Definition at line 40 of file MonitorFactoryImpl.cpp.

References deinitialize().

41 {
42  deinitialize();
43 }

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 97 of file MonitorFactoryImpl.cpp.

References dr_writer_.

98 {
99  return new DRMonitorImpl(dr, this->dr_writer_);
100 }
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 103 of file MonitorFactoryImpl.cpp.

References dr_per_writer_.

104 {
105  return new DRPeriodicMonitorImpl(dr, this->dr_per_writer_);
106 }
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 115 of file MonitorFactoryImpl.cpp.

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

Referenced by initialize().

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

◆ 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 85 of file MonitorFactoryImpl.cpp.

References dw_writer_.

86 {
87  return new DWMonitorImpl(dw, this->dw_writer_);
88 }
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 91 of file MonitorFactoryImpl.cpp.

References dw_per_writer_.

92 {
93  return new DWPeriodicMonitorImpl(dw, this->dw_per_writer_);
94 }
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 52 of file MonitorFactoryImpl.cpp.

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

53 {
54  if (dp->get_domain_id() == MONITOR_DOMAIN_ID) {
55  return 0;
56  }
57  return new DPMonitorImpl(dp, this->dp_writer_);
58 }
const long MONITOR_DOMAIN_ID
Definition: monitor.idl:13
DomainParticipantReportDataWriter_var dp_writer_

◆ 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 73 of file MonitorFactoryImpl.cpp.

References pub_writer_.

74 {
75  return new PublisherMonitorImpl(pub, this->pub_writer_);
76 }
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 46 of file MonitorFactoryImpl.cpp.

47 {
48  return new SPMonitorImpl(this, sp);
49 }

◆ 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 79 of file MonitorFactoryImpl.cpp.

References sub_writer_.

80 {
81  return new SubscriberMonitorImpl(sub, this->sub_writer_);
82 }
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 67 of file MonitorFactoryImpl.cpp.

References topic_writer_.

68 {
69  return new TopicMonitorImpl(topic, this->topic_writer_);
70 }
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 109 of file MonitorFactoryImpl.cpp.

References transport_writer_.

110 {
111  return new TransportMonitorImpl(transport, this->transport_writer_);
112 }
TransportReportDataWriter_var transport_writer_

◆ deinitialize()

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

Reimplemented from OpenDDS::DCPS::MonitorFactory.

Definition at line 377 of file MonitorFactoryImpl.cpp.

References ACE_ERROR, OpenDDS::DCPS::LogLevel::Error, LM_ERROR, OpenDDS::DCPS::log_level, participant_, OpenDDS::DCPS::retcode_to_string(), and TheServiceParticipant.

Referenced by ~MonitorFactoryImpl().

378 {
379  if (participant_) {
380  DDS::ReturnCode_t tmp = participant_->delete_contained_entities();
381  if (tmp && log_level >= LogLevel::Error) {
382  ACE_ERROR((LM_ERROR, "(%P|%t) ERROR: MonitorFactoryImpl::deinitialize: "
383  "delete_contained_entities returned %C\n",
384  retcode_to_string(tmp)));
385  }
386 
387  DDS::DomainParticipantFactory_var dpf =
388  TheServiceParticipant->get_domain_participant_factory();
389  tmp = dpf->delete_participant(participant_);
390  if (tmp && log_level >= LogLevel::Error) {
391  ACE_ERROR((LM_ERROR, "(%P|%t) ERROR: MonitorFactoryImpl::deinitialize: "
392  "delete_participant returned %C\n",
393  retcode_to_string(tmp)));
394  }
395 
396  participant_ = 0;
397  }
398 }
OpenDDS_Dcps_Export LogLevel log_level
#define ACE_ERROR(X)
const char * retcode_to_string(DDS::ReturnCode_t value)
Definition: DCPS_Utils.cpp:29
DDS::DomainParticipant_var participant_
#define TheServiceParticipant

◆ get_sp_writer()

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

Definition at line 61 of file MonitorFactoryImpl.cpp.

References sp_writer_.

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

62 {
63  return ServiceParticipantReportDataWriter::_duplicate(this->sp_writer_);
64 }
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 143 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_, 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_.

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

◆ 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 86 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 93 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 92 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 91 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 90 of file MonitorFactoryImpl.h.

Referenced by create_data_writer_monitor(), and initialize().

◆ participant_

DDS::DomainParticipant_var OpenDDS::DCPS::MonitorFactoryImpl::participant_
private

Definition at line 84 of file MonitorFactoryImpl.h.

Referenced by deinitialize(), and initialize().

◆ pub_writer_

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

Definition at line 88 of file MonitorFactoryImpl.h.

Referenced by create_publisher_monitor(), and initialize().

◆ sp_writer_

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

Definition at line 85 of file MonitorFactoryImpl.h.

Referenced by get_sp_writer(), and initialize().

◆ sub_writer_

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

Definition at line 89 of file MonitorFactoryImpl.h.

Referenced by create_subscriber_monitor(), and initialize().

◆ topic_writer_

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

Definition at line 87 of file MonitorFactoryImpl.h.

Referenced by create_topic_monitor(), and initialize().

◆ transport_writer_

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

Definition at line 94 of file MonitorFactoryImpl.h.

Referenced by create_transport_monitor(), and initialize().


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