SST 12.1.0
Structural Simulation Toolkit
objectSerialization.h
1// Copyright 2009-2022 NTESS. Under the terms
2// of Contract DE-NA0003525 with NTESS, the U.S.
3// Government retains certain rights in this software.
4//
5// Copyright (c) 2009-2022, NTESS
6// All rights reserved.
7//
8// This file is part of the SST software package. For license
9// information, see the LICENSE file in the top level directory of the
10// distribution.
11
12#ifndef SST_CORE_OBJECTSERIALIZATION_H
13#define SST_CORE_OBJECTSERIALIZATION_H
14
15#include "sst/core/serialization/serializer.h"
16
17#include <vector>
18
19namespace SST {
20
21namespace Comms {
22
23template <typename dataType>
24std::vector<char>
25serialize(dataType& data)
26{
28
29 ser.start_sizing();
30 ser& data;
31
32 size_t size = ser.size();
33
34 std::vector<char> buffer;
35 buffer.resize(size);
36
37 ser.start_packing(buffer.data(), size);
38 ser& data;
39
40 return buffer;
41}
42
43
44template <typename dataType>
45dataType*
46deserialize(std::vector<char>& buffer)
47{
48 dataType* tgt = nullptr;
49
51
52 ser.start_unpacking(buffer.data(), buffer.size());
53 ser& tgt;
54
55 return tgt;
56}
57
58template <typename dataType>
59void
60deserialize(std::vector<char>& buffer, dataType& tgt)
61{
63
64 ser.start_unpacking(buffer.data(), buffer.size());
65 ser& tgt;
66}
67
68template <typename dataType>
69void
70deserialize(char* buffer, int blen, dataType& tgt)
71{
73
74 ser.start_unpacking(buffer, blen);
75 ser& tgt;
76}
77
78} // namespace Comms
79
80} // namespace SST
81
82#endif // SST_CORE_OBJECTSERIALIZATION_H
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:35