MonitorFactoryImpl.h

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
00006  */
00007 
00008 #ifndef OPENDDS_DCPS_MONITOR_FACTORY_IMPL_H
00009 #define OPENDDS_DCPS_MONITOR_FACTORY_IMPL_H
00010 
00011 #include "monitor_export.h"
00012 #include "dds/DCPS/MonitorFactory.h"
00013 #include "monitorTypeSupportImpl.h"
00014 
00015 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00016 #pragma once
00017 #endif /* ACE_LACKS_PRAGMA_ONCE */
00018 
00019 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00020 
00021 namespace OpenDDS {
00022 namespace DCPS {
00023 
00024 class Monitor;
00025 /**
00026 * @class MonitorFactoryImpl
00027 *
00028 * @brief Full implementation of the MonitorFactoryImpl
00029 *
00030 * Full version of this library is implemented by the monitor lib.
00031 */
00032 class OpenDDS_monitor_Export MonitorFactoryImpl
00033   : public MonitorFactory {
00034 public:
00035   MonitorFactoryImpl();
00036 
00037   virtual ~MonitorFactoryImpl();
00038 
00039   /// Factory function to create a service participant monitor object
00040   virtual Monitor* create_sp_monitor(Service_Participant* sp);
00041 
00042   /// Factory function to create a domain participant monitor object
00043   virtual Monitor* create_dp_monitor(DomainParticipantImpl* dp);
00044 
00045   /// Factory function to create a topic monitor object
00046   virtual Monitor* create_topic_monitor(TopicImpl* topic);
00047 
00048   /// Factory function to create a publisher monitor object
00049   virtual Monitor* create_publisher_monitor(PublisherImpl* publisher);
00050 
00051   /// Factory function to create a subscriber monitor object
00052   virtual Monitor* create_subscriber_monitor(SubscriberImpl* subscriber);
00053 
00054   /// Factory function to create a data writer monitor object
00055   virtual Monitor* create_data_writer_monitor(DataWriterImpl* dw);
00056 
00057   /// Factory function to create a data writer periodic monitor object
00058   virtual Monitor* create_data_writer_periodic_monitor(DataWriterImpl* dw);
00059 
00060   /// Factory function to create a data reader monitor object
00061   virtual Monitor* create_data_reader_monitor(DataReaderImpl* dr);
00062 
00063   /// Factory function to create a data reader periodic monitor object
00064   virtual Monitor* create_data_reader_periodic_monitor(DataReaderImpl* dr);
00065 
00066   /// Factory function to create a transport monitor object
00067   virtual Monitor* create_transport_monitor(TransportImpl* transport);
00068 
00069   virtual void initialize();
00070 
00071   ServiceParticipantReportDataWriter_ptr get_sp_writer();
00072 
00073   static int service_initialize();
00074 
00075 private:
00076   DDS::DataWriter_ptr create_data_writer(DDS::DomainParticipant_ptr participant,
00077                                          DDS::Publisher_ptr publisher,
00078                                          const char* type_name,
00079                                          const char* topic_name,
00080                                          const DDS::DataWriterQos& dw_qos);
00081 
00082   ServiceParticipantReportDataWriter_var  sp_writer_;
00083   DomainParticipantReportDataWriter_var   dp_writer_;
00084   TopicReportDataWriter_var               topic_writer_;
00085   PublisherReportDataWriter_var           pub_writer_;
00086   SubscriberReportDataWriter_var          sub_writer_;
00087   DataWriterReportDataWriter_var          dw_writer_;
00088   DataWriterPeriodicReportDataWriter_var  dw_per_writer_;
00089   DataReaderReportDataWriter_var          dr_writer_;
00090   DataReaderPeriodicReportDataWriter_var  dr_per_writer_;
00091   TransportReportDataWriter_var           transport_writer_;
00092 };
00093 
00094 static int OpenDDS_Requires_MonitorFactoryImpl_Initializer =
00095   MonitorFactoryImpl::service_initialize();
00096 
00097 } // namespace DCPS
00098 } // namespace OpenDDS
00099 
00100 
00101 ACE_STATIC_SVC_DECLARE (MonitorFactoryImpl)
00102 ACE_FACTORY_DECLARE (OpenDDS_monitor, MonitorFactoryImpl)
00103 
00104 OPENDDS_END_VERSIONED_NAMESPACE_DECL
00105 
00106 #endif /* OPENDDS_DCPS_MONITOR_FACTORY_IMPL_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1