summaryrefslogtreecommitdiff
path: root/source/utilities/Serialization.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/utilities/Serialization.h')
-rw-r--r--source/utilities/Serialization.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/source/utilities/Serialization.h b/source/utilities/Serialization.h
new file mode 100644
index 0000000..7556c1b
--- /dev/null
+++ b/source/utilities/Serialization.h
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (C) ST-Ericsson SA 2011
+ * License terms: 3-clause BSD license
+ ******************************************************************************/
+#ifndef _SERIALIZATION_H_
+#define _SERIALIZATION_H_
+
+#include "t_basicdefinitions.h"
+#include "command_ids.h"
+#ifdef _WIN32
+#include "WinApiWrappers.h"
+#else
+#include "LinuxApiWrappers.h"
+#endif
+#include "Logger.h"
+#include "LCDriver.h"
+#include "commands_types.h"
+
+const uint32 MAX_NO_OF_DEVICES = 1024;
+
+class Serialization
+{
+public:
+ Serialization(void);
+ ~Serialization(void);
+
+ static void put_block(void **data_pp, const void *source_p, uint32 length);
+ static void put_string(void **data_pp, const void *source_p, uint32 length);
+
+ static uint8 get_uint8(const void **data_pp);
+ static uint16 get_uint16_le(const void **data_pp);
+ static uint16 get_uint16_be(const void **data_pp);
+ static uint32 get_uint32_le(const void **data_pp);
+ static uint32 get_uint32_be(const void **data_pp);
+ static uint64 get_uint64_le(const void **data_pp);
+ static void put_uint8(void **data_pp, uint8 v);
+ static void put_uint16_le(void **data_pp, uint16 v);
+ static void put_uint16_be(void **data_pp, uint16 v);
+ static void put_uint32_le(void **data_pp, uint32 v);
+ static void put_uint32_be(void **data_pp, uint32 v);
+ static void put_uint64_le(void **data_pp, uint64 v);
+ static void put_uint64_be(void **data_pp, uint64 v);
+ static void skip_uint8(const void **data_pp);
+ static void skip_uint16(const void **data_pp);
+ static void skip_uint32(const void **data_pp);
+ static void get_block(const void **data_pp, void *target_p, uint32 length);
+ static void skip_block(const void **data_pp, uint32 length);
+ static char *skip_str(const void **data_pp);
+
+ static SupportedCommand_t *get_supportedcommands(const void **data_pp, uint32 CommandsCount);
+ static ListDevice_t *get_devices(const void **data_pp, uint32 DevicesCount);
+ static DirEntry_t *get_direntries(const void **data_pp, uint32 DirectoriesCount);
+
+public:
+ void SetLogger(Logger *logger) {
+ logger_ = logger;
+ }
+private:
+ Logger *logger_;
+ void PrintF(const char *text, void *pVoid);
+};
+
+#endif // _SERIALIZATION_H_