00001 #ifndef FACE_CONFIG_PARSER_H
00002 #define FACE_CONFIG_PARSER_H
00003
00004 #include "FACE/OpenDDS_FACE_Export.h"
00005 #include "ConnectionSettings.h"
00006 #include "QosSettings.h"
00007 #include "TopicSettings.h"
00008
00009 class ACE_Configuration_Heap;
00010 class ACE_Configuration_Section_Key;
00011
00012 namespace OpenDDS { namespace FaceTSS { namespace config {
00013
00014 class OpenDDS_FACE_Export Parser {
00015 public:
00016
00017 int parse(const char* filename);
00018 int find_connection(const char* name, ConnectionSettings& target);
00019 int find_topic(const char* name, TopicSettings& target);
00020 int find_qos(const ConnectionSettings& conn, QosSettings& target);
00021
00022 private:
00023 static ConnectionMap connection_map_;
00024 static QosMap qos_map_;
00025 static TopicMap topic_map_;
00026
00027 int parse_topic(ACE_Configuration_Heap& config,
00028 ACE_Configuration_Section_Key& key,
00029 const char* topic_name);
00030 int parse_connection(ACE_Configuration_Heap& config,
00031 ACE_Configuration_Section_Key& key,
00032 const char* connection_name);
00033 int parse_qos(ACE_Configuration_Heap& config,
00034 ACE_Configuration_Section_Key& key,
00035 const char* qos_name,
00036 QosSettings::QosLevel level);
00037 int parse_sections(ACE_Configuration_Heap& config,
00038 const char* section_type,
00039 bool required);
00040 };
00041
00042 } } }
00043
00044 #endif