diff options
Diffstat (limited to 'src/manager/dpl/core/include/dpl/serialization.h')
-rw-r--r-- | src/manager/dpl/core/include/dpl/serialization.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/manager/dpl/core/include/dpl/serialization.h b/src/manager/dpl/core/include/dpl/serialization.h index 4448923e..0559c422 100644 --- a/src/manager/dpl/core/include/dpl/serialization.h +++ b/src/manager/dpl/core/include/dpl/serialization.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 - 2018 Samsung Electronics Co., Ltd All Rights Reserved + * Copyright (c) 2011 - 2019 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ #include <list> #include <map> #include <memory> +#include <tuple> namespace CKM { // Abstract data stream buffer @@ -216,6 +217,20 @@ struct Serialization { Serialize(stream, *p); } + // std::tuple non generic! + template <typename A, typename B, typename C> + static void Serialize(IStream &stream, const std::tuple<A, B, C> &p) + { + Serialize(stream, std::get<0>(p)); + Serialize(stream, std::get<1>(p)); + Serialize(stream, std::get<2>(p)); + } + template <typename A, typename B, typename C> + static void Serialize(IStream &stream, const std::tuple<A, B, C> *const p) + { + Serialize(stream, *p); + } + // std::map template <typename K, typename T> static void Serialize(IStream &stream, const std::map<K, T> &map) @@ -430,6 +445,21 @@ struct Deserialization { DeserializePtr(stream, p); } + // std::tuple non generic! + template <typename A, typename B, typename C> + static void Deserialize(IStream &stream, std::tuple<A, B, C> &p) + { + Deserialize(stream, std::get<0>(p)); + Deserialize(stream, std::get<1>(p)); + Deserialize(stream, std::get<2>(p)); + } + template <typename A, typename B, typename C> + static void Deserialize(IStream &stream, std::tuple<A, B, C> *&p) + { + p = new std::tuple<A, B, C>; + Deserialize(stream, *p); + } + // std::map template <typename K, typename T> static void Deserialize(IStream &stream, std::map<K, T> &map) |