OpenZWave Library  1.6.0
CompatOptionManager.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 //
3 // CompatOptionManager.h
4 //
5 // Handles Compatibility Flags in Config Files
6 //
7 // Copyright (c) 2019 Justin Hammond <justin@dynam.ac>
8 //
9 // SOFTWARE NOTICE AND LICENSE
10 //
11 // This file is part of OpenZWave.
12 //
13 // OpenZWave is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU Lesser General Public License as published
15 // by the Free Software Foundation, either version 3 of the License,
16 // or (at your option) any later version.
17 //
18 // OpenZWave is distributed in the hope that it will be useful,
19 // but WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU Lesser General Public License for more details.
22 //
23 // You should have received a copy of the GNU Lesser General Public License
24 // along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
25 //
26 //-----------------------------------------------------------------------------
27 
28 #ifndef CPP_SRC_COMPATOPTIONMANAGER_H_
29 #define CPP_SRC_COMPATOPTIONMANAGER_H_
30 
31 #include "Defs.h"
32 #include "tinyxml.h"
33 
34 #include <map>
35 
36 namespace OpenZWave {
37 
39 {
75 };
76 
78 {
83 };
84 
86 {
89 };
90 
94  bool changed;
95  union {
96  bool valBool;
97  uint8_t valByte;
98  uint16_t valShort;
99  uint32_t valInt;
100  };
101 };
102 
104  string name;
107 };
108 
109 class CommandClass;
111 public:
113  virtual ~CompatOptionManager();
114 
115  void SetNodeAndCC(uint8_t node, uint8_t cc);
116  void EnableFlag(CompatOptionFlags flag, uint32_t defaultval);
117 
118  void ReadXML( TiXmlElement const* _ccElement );
119  void WriteXML( TiXmlElement* _ccElement );
120  bool GetFlagBool(CompatOptionFlags flag) const;
121  uint8_t GetFlagByte(CompatOptionFlags flag) const;
122  uint16_t GetFlagShort(CompatOptionFlags flag) const;
123  uint32_t GetFlagInt(CompatOptionFlags flag) const;
124  bool SetFlagBool(CompatOptionFlags flag, bool value);
125  bool SetFlagByte(CompatOptionFlags flag, uint8_t value);
126  bool SetFlagShort(CompatOptionFlags flag, uint16_t value);
127  bool SetFlagInt(CompatOptionFlags flag, uint32_t value);
128 private:
129  string GetFlagName(CompatOptionFlags flag) const;
130  string GetXMLTagName();
131  map<CompatOptionFlags, CompatOptionFlagStorage> m_CompatVals;
132  map<string, CompatOptionFlags> m_enabledCompatFlags;
133  CommandClass *m_owner;
134  CompatOptionType m_comtype;
135  CompatOptionFlagDefintions *m_availableFlags;
136  uint32_t m_availableFlagsCount;
137 };
138 
139 } /* namespace OpenZWave */
140 
141 #endif /* CPP_SRC_COMPATOPTIONMANAGER_H_ */
Definition: CompatOptionManager.h:81
Definition: CompatOptionManager.h:67
Definition: CompatOptionManager.h:68
Definition: CompatOptionManager.h:60
Definition: Bitfield.h:34
CompatOptionFlagType type
Definition: CompatOptionManager.h:93
Definition: CompatOptionManager.h:54
string name
Definition: CompatOptionManager.h:104
Definition: CompatOptionManager.h:71
uint8_t GetFlagByte(CompatOptionFlags flag) const
Definition: CompatOptionManager.cpp:284
Definition: CompatOptionManager.h:82
Definition: CompatOptionManager.h:41
CompatOptionFlags flag
Definition: CompatOptionManager.h:92
Definition: CompatOptionManager.h:88
Definition: CompatOptionManager.h:45
Definition: CompatOptionManager.h:58
void WriteXML(TiXmlElement *_ccElement)
Definition: CompatOptionManager.cpp:228
Definition: CompatOptionManager.h:79
Definition: CompatOptionManager.h:46
uint32_t valInt
Definition: CompatOptionManager.h:99
Definition: CompatOptionManager.h:62
bool SetFlagInt(CompatOptionFlags flag, uint32_t value)
Definition: CompatOptionManager.cpp:395
Definition: CompatOptionManager.h:72
Base class for all Z-Wave command classes.
Definition: CommandClass.h:55
Definition: CompatOptionManager.h:74
Definition: CompatOptionManager.h:73
Definition: CompatOptionManager.h:91
Definition: CompatOptionManager.h:49
bool SetFlagShort(CompatOptionFlags flag, uint16_t value)
Definition: CompatOptionManager.cpp:375
void SetNodeAndCC(uint8_t node, uint8_t cc)
Definition: CompatOptionManager.h:56
Definition: CompatOptionManager.h:61
Definition: CompatOptionManager.h:42
Definition: CompatOptionManager.h:69
Definition: CompatOptionManager.h:59
CompatOptionFlags flag
Definition: CompatOptionManager.h:105
Definition: CompatOptionManager.h:40
Definition: CompatOptionManager.h:103
CompatOptionFlagType type
Definition: CompatOptionManager.h:106
void ReadXML(TiXmlElement const *_ccElement)
Definition: CompatOptionManager.cpp:155
Definition: CompatOptionManager.h:43
Definition: CompatOptionManager.h:47
Definition: CompatOptionManager.h:110
Definition: CompatOptionManager.h:53
bool SetFlagByte(CompatOptionFlags flag, uint8_t value)
Definition: CompatOptionManager.cpp:355
CompatOptionFlagType
Definition: CompatOptionManager.h:77
Definition: CompatOptionManager.h:80
Definition: CompatOptionManager.h:57
Definition: CompatOptionManager.h:63
Definition: CompatOptionManager.h:44
bool changed
Definition: CompatOptionManager.h:94
virtual ~CompatOptionManager()
Definition: CompatOptionManager.cpp:102
CompatOptionType
Definition: CompatOptionManager.h:85
Definition: CompatOptionManager.h:50
uint8_t valByte
Definition: CompatOptionManager.h:97
Definition: CompatOptionManager.h:65
uint32_t GetFlagInt(CompatOptionFlags flag) const
Definition: CompatOptionManager.cpp:318
uint16_t valShort
Definition: CompatOptionManager.h:98
Definition: CompatOptionManager.h:51
Definition: CompatOptionManager.h:64
Definition: CompatOptionManager.h:87
Definition: CompatOptionManager.h:48
CompatOptionFlags
Definition: CompatOptionManager.h:38
Definition: CompatOptionManager.h:55
CompatOptionManager(CompatOptionType type, CommandClass *cc)
Definition: CompatOptionManager.cpp:82
Definition: CompatOptionManager.h:52
Definition: CompatOptionManager.h:66
bool valBool
Definition: CompatOptionManager.h:96
Definition: CompatOptionManager.h:70
uint16_t GetFlagShort(CompatOptionFlags flag) const
Definition: CompatOptionManager.cpp:301
void EnableFlag(CompatOptionFlags flag, uint32_t defaultval)
Definition: CompatOptionManager.cpp:109
bool GetFlagBool(CompatOptionFlags flag) const
Definition: CompatOptionManager.cpp:266
bool SetFlagBool(CompatOptionFlags flag, bool value)
Definition: CompatOptionManager.cpp:335