diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/serialization.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/common/serialization.h b/src/common/serialization.h index fec50c0..3f41d29 100644 --- a/src/common/serialization.h +++ b/src/common/serialization.h @@ -31,6 +31,7 @@ #include <set> #include <memory> +#include "service/app.h" #include "common/command-id.h" namespace CCHECKER { @@ -144,6 +145,20 @@ struct Serialization { Serialize(stream, static_cast<int>(value)); } + // app_t + static void Serialize(IStream &stream, const app_t app) + { + Serialize(stream, app.app_id); + Serialize(stream, app.pkg_id); + Serialize(stream, static_cast<uint32_t>(app.uid)); + Serialize(stream, app.signatures); + Serialize(stream, static_cast<int>(app.verified)); + } + static void Serialize(IStream &stream, const app_t *const p) + { + Serialize(stream, *p); + } + // std::string template <typename T, typename R, typename A> static void Serialize(IStream &stream, const std::basic_string<T, R, A> &str) @@ -394,6 +409,28 @@ struct Deserialization { value = static_cast<CommandId>(val); } + // app_t + static void Deserialize(IStream &stream, app_t &app) + { + Deserialize(stream, app.app_id); + Deserialize(stream, app.pkg_id); + + uint32_t uid; + Deserialize(stream, uid); + app.uid = static_cast<uid_t>(uid); + + Deserialize(stream, app.signatures); + + int val; + Deserialize(stream, val); + app.verified = static_cast<app_t::verified_t>(val); + } + static void Deserialize(IStream &stream, app_t *&p) + { + p = new app_t(); + Deserialize(stream, *p); + } + static void Deserialize(IStream &stream, bool *&value) { value = new bool; |