SST/macro
serializable.h
Go to the documentation of this file.
1 #ifndef sstmac_common_serializable_h
2 #define sstmac_common_serializable_h
3 
5 
6 #if SSTMAC_INTEGRATED_SST_CORE
7 #include <sst/core/serialization/serializer_fwd.h>
8 #include <sst/core/serialization/serializable.h>
9 #include <sst/core/serialization/serialize_serializable.h>
10 #include <sst/core/serialization/serializer.h>
11 
12 #define START_SERIALIZATION_NAMESPACE namespace SST { namespace Core { namespace Serialization {
13 #define END_SERIALIZATION_NAMESPACE } } }
14 
15 #define FRIEND_SERIALIZATION template <class T, class Enable> friend class sstmac::serialize
16 
17 namespace sstmac {
18 using SST::Core::Serialization::serializable;
19 using SST::Core::Serialization::serializable_type;
20 using SST::Core::Serialization::serialize;
21 using SST::Core::Serialization::serializer;
24 }
25 
26 #define SER_NAMESPACE_OPEN \
27  namespace SST { namespace Core { namespace Serialization {
28 #define SER_NAMESPACE_CLOSE } } }
29 
30 #else
32 #include <sprockit/serializable.h>
34 #include <sprockit/serializer.h>
35 
36 #define START_SERIALIZATION_NAMESPACE namespace sprockit {
37 #define END_SERIALIZATION_NAMESPACE }
38 
39 #define FRIEND_SERIALIZATION template <class T> friend class sstmac::serialize
40 
41 namespace sstmac {
46 using sprockit::array;
47 using sprockit::raw_ptr;
48 }
49 
50 #define SER_NAMESPACE_OPEN namespace sprockit {
51 #define SER_NAMESPACE_CLOSE }
52 
53 #endif
54 
55 #endif
56 
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:33
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
pvt::ser_array_wrapper< TPtr, IntType > array(TPtr &buf, IntType &size)
I have typedefing pointers, but no other way.
pvt::raw_ptr_wrapper< TPtr > raw_ptr(TPtr *&ptr)