OpenSplice ISO C++ 2 FACE API  v6.x
OpenSplice Future Airborne Capability Environment (FACE) ISO C++ 2 API
Config.hpp
Go to the documentation of this file.
1 /*
2  * Vortex OpenSplice
3  *
4  * This software and documentation are Copyright 2006 to 2021 ADLINK
5  * Technology Limited, its affiliated companies and licensors. All rights
6  * reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #ifndef VORTEX_FACE_CONFIGURATION_HPP_
22 #define VORTEX_FACE_CONFIGURATION_HPP_
23 
24 #include "Vortex_FACE.hpp"
26 
27 C_CLASS(cf_data);
28 C_CLASS(cf_element);
29 
30 namespace Vortex {
31 namespace FACE {
32 
33 typedef enum {
37 } CONFIG_SCOPE;
38 
40 {
41 public:
42  typedef std::map<std::string, ConnectionConfig::shared_ptr> CFG_MAP_TYPE;
43 
44  Config();
45 
47  parse(const std::string &url);
48 
50  find(const std::string &name);
51 
52  static std::string
53  addUrlPrefix(const std::string &url);
54 
55 private:
57  parseElement(cf_element element);
58 
60  parseContainedElements(c_iter elements);
61 
63  parseElementData(cf_data data);
64 
65  CFG_MAP_TYPE configs;
66  ConnectionConfig *connection;
67  std::string scopedTag;
68  CONFIG_SCOPE scope;
69 };
70 
71 }; /* namespace FACE */
72 }; /* namespace Vortex */
73 
74 #endif /* VORTEX_FACE_CONFIGURATION_HPP_ */
C_CLASS(cf_data)
std::map< std::string, ConnectionConfig::shared_ptr > CFG_MAP_TYPE
Definition: Config.hpp:42
RETURN_CODE_TYPE
Definition: FACE_common.h:54
Vortex::FACE::smart_ptr_traits< ConnectionConfig >::shared_ptr shared_ptr
#define VORTEX_FACE_API
Definition: Macros.hpp:34