QOS_XML_Loader.h

Go to the documentation of this file.
00001 /**
00002  * @author Marcel Smit (msmit@remedy.nl)
00003  *
00004  *
00005  * Starting point for QOS XML parsing library.
00006  *
00007  */
00008 #ifndef QOS_XML_LOADER_H
00009 #define QOS_XML_LOADER_H
00010 
00011 #include "dds/DdsDcpsInfrastructureC.h"
00012 #include "dds/DCPS/QOS_XML_Handler/XML_QOS_Handler_Export.h"
00013 #include "dds/DCPS/QOS_XML_Handler/XML_File_Intf.h"
00014 
00015 namespace OpenDDS {
00016 namespace DCPS {
00017 
00018   class XML_QOS_Handler_Export QOS_XML_Loader
00019   {
00020   public:
00021     QOS_XML_Loader (void);
00022     ~QOS_XML_Loader (void);
00023 
00024     /**
00025      * init
00026      *
00027      * qos_profile profile should be formatted like:
00028      *
00029      *    qos_base_file_name_without_extension#profile_name_in_xml_file
00030      *
00031      * Init parses this string and will append ".xml" to
00032      * qos_base_file_name_without_extension. It'll than invoke
00033      * the init method on the XML_File_Intf class.
00034      *
00035      */
00036     DDS::ReturnCode_t
00037     init (const ACE_TCHAR * qos_profile);
00038 
00039     //@{
00040     /**
00041      *
00042      * These methods have DDS QOS, a profile and a topic_name as
00043      * input.
00044      *
00045      * The DDS QOS is passed by reference. This library fills this
00046      * QOS and will return it to the callee.
00047      *
00048      * qos_profile should be the same profile string as the one
00049      * passed to the init method.
00050      *
00051      * If the profile name is correct, the methods will invoke
00052      * the corresponding method in the XML_File_Intf class.
00053      *
00054      */
00055     DDS::ReturnCode_t
00056     get_datawriter_qos (DDS::DataWriterQos& dw_qos,
00057                         const char *qos_profile,
00058                         const char* topic_name);
00059 
00060     DDS::ReturnCode_t
00061     get_datareader_qos (DDS::DataReaderQos& dr_qos,
00062                         const char *qos_profile,
00063                         const char* topic_name);
00064 
00065     DDS::ReturnCode_t
00066     get_publisher_qos (DDS::PublisherQos& pub_qos,
00067                         const char *qos_profile);
00068 
00069     DDS::ReturnCode_t
00070     get_subscriber_qos (DDS::SubscriberQos& sub_qos,
00071                         const char *qos_profile);
00072 
00073     DDS::ReturnCode_t
00074     get_topic_qos (DDS::TopicQos& topic_qos,
00075                    const char *qos_profile,
00076                    const ACE_TCHAR *topic_name);
00077 
00078     DDS::ReturnCode_t
00079     get_participant_qos (DDS::DomainParticipantQos& part_qos,
00080                          const char *qos_profile);
00081     //@}
00082 
00083   private:
00084     QOS_XML_File_Handler xml_file_;
00085 
00086     char* get_xml_file_name (const char * qos_profile);
00087     char* get_profile_name (const char * qos_profile);
00088   };
00089 }
00090 }
00091 #endif /* QOS_XML_LOADER_H */

Generated on Fri Feb 12 20:05:25 2016 for OpenDDS by  doxygen 1.4.7