diff options
Diffstat (limited to 'source/utilities/Serialization.h')
-rw-r--r-- | source/utilities/Serialization.h | 63 |
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_ |