EnOcean Link  1.14.0.0
Middleware to Connect EnOcean easily to other Projects
eoStorageManager.h
Go to the documentation of this file.
1 /******************************************************************************
2  DISCLAIMER
3 
4  THIS SOFTWARE PRODUCT ("SOFTWARE") IS PROPRIETARY TO ENOCEAN GMBH, OBERHACHING,
5  GERMANY (THE "OWNER") AND IS PROTECTED BY COPYRIGHT AND INTERNATIONAL TREATIES OR
6  PROTECTED AS TRADE SECRET OR AS OTHER INTELLECTUAL PROPERTY RIGHT. ALL RIGHTS, TITLE AND
7  INTEREST IN AND TO THE SOFTWARE, INCLUDING ANY COPYRIGHT, TRADE SECRET OR ANY OTHER
8  INTELLECTUAL PROPERTY EMBODIED IN THE SOFTWARE, AND ANY RIGHTS TO REPRODUCE,
9  DISTRIBUTE, MODIFY, DISPLAY OR OTHERWISE USE THE SOFTWARE SHALL EXCLUSIVELY VEST IN THE
10  OWNER. ANY UNAUTHORIZED REPRODUCTION, DISTRIBUTION, MODIFICATION, DISPLAY OR OTHER
11  USE OF THE SOFTWARE WITHOUT THE EXPLICIT PERMISSION OF OWNER IS PROHIBITED AND WILL
12  CONSTITUTE AN INFRINGEMENT OF THE OWNER'S RIGHT AND MAY BE SUBJECT TO CIVIL OR
13  CRIMINAL SANCTION.
14 
15  THIS SOFTWARE IS PROVIDED BY THE OWNER "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
16  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
17  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN PARTICULAR, THE OWNER DOES NOT WARRANT
18  THAT THE SOFTWARE SHALL BE ERROR FREE AND WORKS WITHOUT INTERRUPTION.
19 
20  IN NO EVENT SHALL THE OWNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  ******************************************************************************/
27 
33 #include "eoArchive.h"
34 #include "eoHeader.h"
35 #include "eoISerialize.h"
36 #include "eoConverter.h"
37 #include "eoHalTypes.h"
38 #include <string.h>
39 #include <map>
40 
41 #ifndef EO_STORAGE_MANAGER_H_
42 #define EO_STORAGE_MANAGER_H_
43 
45 #define EO_STORAGE_IDENTIFIER "_EOLINK_SAVE"
46 
48 typedef struct
49 {
53  char name[33];
54  //seems that i don't need this...
58  uint32_t uniqueID;
60 
62 typedef std::map<uint32_t, serialize_object*> name_object_map;
63 
78 {
79 
80 public:
89  eoStorageManager(eoArchive &archive);
90  virtual ~eoStorageManager();
98  eoReturn addObject(const char * name, eoISerialize *object);
99 
106  eoReturn RemoveObject(const char * name);
112  eoReturn Load(const char * strBuf);
118  eoReturn Save(const char * strBuf);
119 
120 
121 private:
122  name_object_map list;
123  eoArchive * arch;
124 };
128 #endif // !defined(EA_E73F2DAC_8C52_496f_8AAC_BA2DE5B7E9B8__INCLUDED_)
std::map< uint32_t, serialize_object * > name_object_map
Map type definition for serialized objects.
Definition: eoStorageManager.h:62
contains base for Archives
eoReturn Load(const char *strBuf)
Interface for storing.
Definition: eoISerialize.h:48
eoReturn addObject(const char *name, eoISerialize *object)
Adds an eoISerialize Object to the storageManager.
Serialised obejct type definition to save learned devices.
Definition: eoStorageManager.h:48
eoReturn RemoveObject(const char *name)
Removes an ISerialize Object from the StorageManager.
eoReturn Save(const char *strBuf)
bool hasBeenLoaded
Has been loaded.
Definition: eoStorageManager.h:56
uint32_t uniqueID
Unique ID.
Definition: eoStorageManager.h:58
handles the Storage of Object
Definition: eoStorageManager.h:77
eoReturn
contains all the return values from different functions
Definition: eoApiDef.h:40
different converter
eoISerialize * object
Serialize object.
Definition: eoStorageManager.h:51
the base Archive
Definition: eoArchive.h:46