2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
10 //==========================================================================
12 * @file CicoSystemConfig.h
14 * @brief This file is definition of CicoSystemConfig class
16 //==========================================================================
17 #ifndef __CICO_SYSTEM_CONFIG_H__
18 #define __CICO_SYSTEM_CONFIG_H__
20 #include <boost/property_tree/ptree.hpp>
21 #include <boost/property_tree/xml_parser.hpp>
22 #include <boost/foreach.hpp>
23 #include <boost/lexical_cast.hpp>
29 using namespace boost;
30 using namespace boost::property_tree;
32 //==========================================================================
33 // Forward declaration
34 //==========================================================================
35 #ifndef __CICO_SC_CONF_H__
37 class CicoSCLayerConf;
38 class CicoSCDisplayZoneConf;
39 class CicoSCDisplayConf;
40 class CicoSCSoundZoneConf;
41 class CicoSCSoundConf;
42 class CicoSCCategoryConf;
43 class CicoSCAppKindConf;
44 class CicoSCSwitchConf;
45 class CicoSCInputDevConf;
46 class CicoSCDefaultConf;
47 class CicoSCResourceConf;
49 class CicoSCVehicleInfoConf;
51 class CicoSCPositionOSConf;
54 //==========================================================================
55 // Default configuration file
56 //==========================================================================
57 #define ICO_SYSTEM_CONFIG_PATH "/usr/apps/org.tizen.ico.system-controller/res/config/system.xml"
59 //==========================================================================
61 * @brief This class has function of access to system config information
63 //==========================================================================
64 class CicoSystemConfig
67 static CicoSystemConfig* getInstance(void);
69 bool load(const string & confFile);
71 const vector<CicoSCNodeConf*> & getNodeConfList(void) const;
72 const vector<CicoSCDisplayConf*> & getDisplayConfList(void) const;
73 const vector<CicoSCSoundConf*> & getSoundConfList(void) const;
74 const vector<CicoSCInputDevConf*> & getInputDevConfList(void) const;
75 const vector<CicoSCCategoryConf*> & getCategoryConfList(void) const;
76 const vector<CicoSCAppKindConf*> & getAppKindConfList(void) const;
78 const CicoSCNodeConf* findNodeConfbyName(const string & name);
79 const CicoSCDisplayConf* findDisplayConfbyName(const string & name);
80 const CicoSCDisplayConf* findDisplayConfbyName(const string& ECU,
82 const CicoSCDisplayConf* findDisplayConfbyId(int id);
84 const CicoSCLayerConf* findLayerConfbyName(const string & displayName,
85 const string & layerName);
86 const CicoSCLayerConf* findLayerConfbyName(const string& ECU,
87 const string& display,
91 const CicoSCLayerConf* findLayerConfbyIdx(int displayid, int idx);
93 const CicoSCDisplayZoneConf* findDisplayZoneConfbyName(const string & displayName,
94 const string & zoneName);
95 const CicoSCSoundConf* findSoundConfbyName(const string & name);
96 const CicoSCSoundZoneConf* findSoundZoneConfbyName(const string & soundName,
97 const string & zoneName);
98 const CicoSCInputDevConf* findInputDevConfbyName(const string & name);
99 const CicoSCSwitchConf* findSwitchConfbyName(const string & inputDevName,
100 const string & switchName);
102 const CicoSCAppKindConf* findAppKindConfbyName(const string & name);
103 const CicoSCCategoryConf* findCategoryConfbyName(const string & name);
105 const CicoSCDisplayZoneConf* findDisplayZoneConfbyId(int id);
107 const CicoSCSoundZoneConf* findSoundZoneConfbyId(int id);
108 const CicoSCCategoryConf* findCategoryConfbyId(int id);
109 const CicoSCAppKindConf* findAppKindConfbyId(int id);
111 const CicoSCDefaultConf* getDefaultConf(void);
113 int getNodeIdbyName(const string & name);
114 int getDisplayIdbyName(const string & name);
115 int getDisplayIdbyNo(int no);
116 int getDisplayIdbyType(int type);
117 int getNumberofDisplay(void);
118 int getLayerIdfbyName(const string & displayName,
119 const string & layerName);
120 int getLayerIdfbyName(const string& ECU,
121 const string& display,
123 const string& layout,
125 int getDizplayZoneIdbyName(const string & displayName,
126 const string & zoneName);
127 int getDizplayZoneIdbyFullName(const string & zoneFullName);
128 int getSoundIdbyName(const string & name);
130 int getSoundZoneIdbyName(const string & soundName,
131 const string & zoneName);
132 int getSoundZoneIdbyFullName(const string & zoneFullName);
133 int getInputDevIdbyName(const string & name);
134 int getSwitchIdbyName(const string & inputDevName,
135 const string & switchName);
136 int getAppKindIdbyName(const string & name);
137 int getCategoryIdbyName(const string & name);
138 const CicoSCResourceConf* getResourceConf() const
140 return m_resourceConf;
142 const CicoSCCategoryConf* getCategoryObjbyCaategoryID(int id);
144 const CicoSCUserConf* getUserConf() const
149 CicoSCVehicleInfoConf* getVehicleInfoConf(void);
150 short getRoleStt(const string& key);
151 const CicoSCRoleConf* getRoleConf() const
155 const CicoSCPositionOSConf* positionOSConf() const
157 return m_positionOSConf;
160 // default constructor
166 // assignment operator
167 CicoSystemConfig& operator=(const CicoSystemConfig &object);
170 CicoSystemConfig(const CicoSystemConfig &object);
172 void createNodeConfList(const ptree & root);
173 void createDisplayConfList(const ptree & root);
174 void createLayoutConfContainedArea(const ptree::value_type& layout,
175 const optional<int>& layer_id,
176 const optional<string>& layer_name,
177 const optional<int>& layout_id,
178 const optional<string>& layout_name,
179 CicoSCDisplayConf* displayConf);
180 void createLayerConfContainedLayout(const ptree::value_type& layer,
181 const optional<int>& layer_id,
182 const optional<string>& layer_name,
183 CicoSCDisplayConf* displayConf);
184 void createLayerConf(const ptree::value_type & child,
185 CicoSCDisplayConf* displayConf);
186 void createDisplayZoneConf(const ptree::value_type & child,
187 CicoSCDisplayConf* displayConf);
189 void createSoundConfList(const ptree & root);
190 void createSoundZoneConf(const ptree::value_type & child,
191 CicoSCSoundConf* soundConf);
192 void createPortConf(const ptree & root);
193 void createCategoryConf(const ptree & root);
194 void createAppKindConf(const ptree & root);
195 void createInputDevList(const ptree & root);
196 void createSwitchList(const ptree::value_type & child,
197 CicoSCInputDevConf* inputDevConf);
198 void createDefaultConf(const ptree & root);
199 void createResourceConf(const ptree & root);
200 void createUserConf(const ptree & root);
201 void createVehicleInfoConf(const ptree & root);
203 int calcGeometryExpr(const string & expr, CicoSCDisplayConf* conf);
204 void createRoleConf(const ptree& root);
205 void createPositionOSConf(const ptree& root);
208 static CicoSystemConfig* ms_myInstance;
210 map<string,int> m_typeTable;
211 map<string,int> m_displayTypeTable;
212 map<string,int> m_categoryTalbe;
213 map<string,int> m_privilegeTable;
214 vector<CicoSCNodeConf*> m_nodeConfList;
215 vector<CicoSCDisplayConf*> m_displayConfList;
216 vector<CicoSCSoundConf*> m_soundConfList;
217 vector<CicoSCInputDevConf*> m_inputDevConfList;
218 vector<CicoSCCategoryConf*> m_categoryConfList;
219 vector<CicoSCAppKindConf*> m_appKindConfList;
221 int m_soundPluginPort;
222 CicoSCDefaultConf *m_defaultConf;
223 CicoSCResourceConf *m_resourceConf;
224 CicoSCUserConf *m_userConf;
225 CicoSCVehicleInfoConf *m_vehicleInfoConf;
226 CicoSCRoleConf *m_roleConf;
227 CicoSCPositionOSConf *m_positionOSConf;
230 #endif // __CICO_SYSTEM_CONFIG_H__
231 // vim:set expandtab ts=4 sw=4: