summaryrefslogtreecommitdiff
path: root/src/common/serialization.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/serialization.h')
-rw-r--r--src/common/serialization.h37
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;