20 #include "monitorTypeSupportImpl.h" 28 #include <dds/DdsDcpsInfrastructureC.h> 29 #include <dds/DdsDcpsPublicationC.h> 60 ServiceParticipantReportDataWriter_ptr
63 return ServiceParticipantReportDataWriter::_duplicate(this->
sp_writer_);
116 DDS::Publisher_ptr publisher,
117 const char* type_name,
118 const char* topic_name,
121 DDS::Topic_var topic =
122 participant->create_topic(topic_name,
125 DDS::TopicListener::_nil(),
128 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::create_data_writer(): Failed to create topic, name = %C\n", topic_name));
130 DDS::DataWriter_var writer =
131 publisher->create_datawriter(topic.in(),
133 DDS::DataWriterListener::_nil(),
136 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::create_data_writer(): Failed to create data writer\n"));
139 return writer._retn();
145 DDS::DomainParticipantFactory_var dpf =
147 DDS::DomainParticipant_var participant =
150 DDS::DomainParticipantListener::_nil(),
155 ACE_TEXT(
"ERROR: %N:%l: MonitorFactoryImpl::initialize() -")
156 ACE_TEXT(
" create_participant failed!\n")));
159 DDS::Publisher_var publisher =
161 DDS::PublisherListener::_nil(),
165 + std::string(
"MonitorBITTransportConfig");
173 + std::string(
"FederationBITTCPTransportInst");
181 DDS::DataWriter_var writer;
183 publisher->get_default_datawriter_qos(dw_qos);
186 OpenDDS::DCPS::ServiceParticipantReportTypeSupport_var sp_ts =
187 new OpenDDS::DCPS::ServiceParticipantReportTypeSupportImpl();
197 OpenDDS::DCPS::ServiceParticipantReportDataWriter::_narrow(writer.in());
199 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow sp_writer\n"));
202 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register sp_ts\n"));
205 OpenDDS::DCPS::DomainParticipantReportTypeSupport_var dp_ts =
206 new OpenDDS::DCPS::DomainParticipantReportTypeSupportImpl();
207 ret = dp_ts->register_type(participant.in(),
"");
216 OpenDDS::DCPS::DomainParticipantReportDataWriter::_narrow(writer.in());
218 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow dp_writer\n"));
221 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register dp_ts\n"));
224 OpenDDS::DCPS::TopicReportTypeSupport_var topic_ts =
225 new OpenDDS::DCPS::TopicReportTypeSupportImpl();
226 ret = topic_ts->register_type(participant.in(),
"");
231 topic_type_name.
in(),
235 OpenDDS::DCPS::TopicReportDataWriter::_narrow(writer.in());
237 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow topic_writer\n"));
240 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register topic_ts\n"));
243 OpenDDS::DCPS::PublisherReportTypeSupport_var pub_ts =
244 new OpenDDS::DCPS::PublisherReportTypeSupportImpl();
245 ret = pub_ts->register_type(participant.in(),
"");
254 OpenDDS::DCPS::PublisherReportDataWriter::_narrow(writer.in());
256 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow pub_writer\n"));
259 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register pub_ts\n"));
262 OpenDDS::DCPS::SubscriberReportTypeSupport_var sub_ts =
263 new OpenDDS::DCPS::SubscriberReportTypeSupportImpl();
264 ret = sub_ts->register_type(participant.in(),
"");
273 OpenDDS::DCPS::SubscriberReportDataWriter::_narrow(writer.in());
275 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow sub_writer\n"));
278 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register sub_ts\n"));
281 OpenDDS::DCPS::DataWriterReportTypeSupport_var dw_ts =
282 new OpenDDS::DCPS::DataWriterReportTypeSupportImpl();
283 ret = dw_ts->register_type(participant.in(),
"");
292 OpenDDS::DCPS::DataWriterReportDataWriter::_narrow(writer.in());
294 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow dw_writer\n"));
297 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register sp_ts\n"));
300 OpenDDS::DCPS::DataWriterPeriodicReportTypeSupport_var dw_per_ts =
301 new OpenDDS::DCPS::DataWriterPeriodicReportTypeSupportImpl();
302 ret = dw_per_ts->register_type(participant.in(),
"");
307 dw_per_type_name.
in(),
311 OpenDDS::DCPS::DataWriterPeriodicReportDataWriter::_narrow(writer.in());
313 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow dw_per_writer\n"));
316 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register dw_per_ts\n"));
319 OpenDDS::DCPS::DataReaderReportTypeSupport_var dr_ts =
320 new OpenDDS::DCPS::DataReaderReportTypeSupportImpl();
321 ret = dr_ts->register_type(participant.in(),
"");
330 OpenDDS::DCPS::DataReaderReportDataWriter::_narrow(writer.in());
332 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow dr_writer\n"));
335 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register dr_ts\n"));
338 OpenDDS::DCPS::DataReaderPeriodicReportTypeSupport_var dr_per_ts =
339 new OpenDDS::DCPS::DataReaderPeriodicReportTypeSupportImpl();
340 ret = dr_per_ts->register_type(participant.in(),
"");
345 dr_per_type_name.
in(),
349 OpenDDS::DCPS::DataReaderPeriodicReportDataWriter::_narrow(writer.in());
351 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow dr_per_writer\n"));
354 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register dr_per_ts\n"));
357 OpenDDS::DCPS::TransportReportTypeSupport_var transport_ts =
358 new OpenDDS::DCPS::TransportReportTypeSupportImpl();
359 ret = transport_ts->register_type(participant.in(),
"");
364 transport_type_name.
in(),
368 OpenDDS::DCPS::TransportReportDataWriter::_narrow(writer.in());
370 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to narrow transport_writer\n"));
373 ACE_DEBUG((
LM_DEBUG,
"MonitorFactoryImpl::initialize(): Failed to register transport_ts\n"));
383 "delete_contained_entities returned %C\n",
387 DDS::DomainParticipantFactory_var dpf =
392 "delete_participant returned %C\n",
#define TheTransportRegistry
#define PARTICIPANT_QOS_DEFAULT
Implements the OpenDDS::DCPS::DomainParticipant interfaces.
virtual Monitor * create_data_reader_periodic_monitor(DataReaderImpl *dr)
Factory function to create a data reader periodic monitor object.
PublisherReportDataWriter_var pub_writer_
const string SERVICE_PARTICIPANT_MONITOR_TOPIC
const string PUBLISHER_MONITOR_TOPIC
virtual Monitor * create_sp_monitor(Service_Participant *sp)
Factory function to create a service participant monitor object.
DataReaderPeriodicReportDataWriter_var dr_per_writer_
virtual Monitor * create_publisher_monitor(PublisherImpl *publisher)
Factory function to create a publisher monitor object.
ACE_FACTORY_DEFINE(OpenDDS_InfoRepoDiscovery, IRDiscoveryLoader)
virtual Monitor * create_subscriber_monitor(SubscriberImpl *subscriber)
Factory function to create a subscriber monitor object.
DurabilityQosPolicy durability
virtual Monitor * create_topic_monitor(TopicImpl *topic)
Factory function to create a topic monitor object.
& ACE_SVC_NAME(TAO_AV_TCP_Factory)
static int process_directive(const ACE_TCHAR directive[])
DomainParticipantReportDataWriter_var dp_writer_
const string DATA_READER_PERIODIC_MONITOR_TOPIC
virtual Monitor * create_data_writer_monitor(DataWriterImpl *dw)
Factory function to create a data writer monitor object.
static int service_initialize()
virtual ~MonitorFactoryImpl()
const string DATA_WRITER_PERIODIC_MONITOR_TOPIC
virtual void deinitialize()
ServiceParticipantReportDataWriter_var sp_writer_
ACE_STATIC_SVC_DEFINE(ACE_Logging_Strategy, ACE_TEXT("Logging_Strategy"), ACE_Service_Type::SERVICE_OBJECT, &ACE_SVC_NAME(ACE_Logging_Strategy), ACE_Service_Type::DELETE_THIS|ACE_Service_Type::DELETE_OBJ, 0) extern "C" int _get_dll_unload_policy()
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)
void bind_config(const OPENDDS_STRING &name, DDS::Entity_ptr entity)
DDS::DomainParticipant_var participant_
const DDS::StatusMask DEFAULT_STATUS_MASK
DataReaderReportDataWriter_var dr_writer_
Implements the OpenDDS::DCPS::Publisher interfaces.
Implements the DDS::Topic interface.
ServiceParticipantReportDataWriter_ptr get_sp_writer()
TransportReportDataWriter_var transport_writer_
const string DATA_READER_MONITOR_TOPIC
DataWriterPeriodicReportDataWriter_var dw_per_writer_
Implements the OpenDDS::DCPS::DataWriterRemote interfaces and DDS::DataWriter interfaces.
const string SUBSCRIBER_MONITOR_TOPIC
DurabilityQosPolicyKind kind
virtual Monitor * create_transport_monitor(TransportImpl *transport)
Factory function to create a transport monitor object.
const long MONITOR_DOMAIN_ID
Implements the DDS::DataReader interface.
#define PUBLISHER_QOS_DEFAULT
DataWriterReportDataWriter_var dw_writer_
TransportInst_rch create_inst(const OPENDDS_STRING &name, const OPENDDS_STRING &transport_type)
TransportConfig_rch create_config(const OPENDDS_STRING &name)
virtual DDS::DomainId_t get_domain_id()
TopicReportDataWriter_var topic_writer_
const string TRANSPORT_MONITOR_TOPIC
const string DATA_WRITER_MONITOR_TOPIC
virtual Monitor * create_dp_monitor(DomainParticipantImpl *dp)
Factory function to create a domain participant monitor object.
OpenDDS_Dcps_Export LogLevel log_level
Full implementation of the MonitorFactoryImpl.
const char * retcode_to_string(DDS::ReturnCode_t value)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
const string TOPIC_MONITOR_TOPIC
static const char DEFAULT_INST_PREFIX[]
static TransportRegistry * instance()
Return a singleton instance of this class.
const string DOMAIN_PARTICIPANT_MONITOR_TOPIC
const ReturnCode_t RETCODE_OK
const character_type * in(void) const
virtual Monitor * create_data_reader_monitor(DataReaderImpl *dr)
Factory function to create a data reader monitor object.
#define TheServiceParticipant
SubscriberReportDataWriter_var sub_writer_
The Internal API and Implementation of OpenDDS.
virtual Monitor * create_data_writer_periodic_monitor(DataWriterImpl *dw)
Factory function to create a data writer periodic monitor object.
#define TOPIC_QOS_DEFAULT
virtual void initialize()
Initialize the monitor (required to report data)