12 #ifndef SST_CORE_SERIALIZATION_IMPL_SERIALIZE_STRING_H 13 #define SST_CORE_SERIALIZATION_IMPL_SERIALIZE_STRING_H 15 #ifndef SST_INCLUDING_SERIALIZE_H 17 "The header file sst/core/serialization/impl/serialize_string.h should not be directly included as it is not part of the stable public API. The file is included in sst/core/serialization/serialize.h" 20 #include "sst/core/serialization/serializer.h" 23 #include <type_traits> 39 void*
getAddr()
override {
return addr_; }
41 std::string
get()
override {
return *addr_; }
43 void set_impl(
const std::string& value)
override { *addr_ = value; }
69 class serialize_impl<T, std::enable_if_t<std::is_same_v<std::remove_pointer_t<T>, std::string>>>
71 void operator()(T& str,
serializer& ser, ser_opt_t options)
74 const auto& sPtr = get_ptr(str);
75 const auto mode = ser.mode();
76 if ( mode == serializer::MAP ) {
77 if ( options & SerOption::map_read_only ) {
78 ser.mapper().setNextObjectReadOnly();
80 ser.mapper().map_primitive(ser.getMapName(),
new ObjectMapString(sPtr));
83 if constexpr ( std::is_pointer_v<T> ) {
84 if ( mode == serializer::UNPACK ) str =
new std::string();
90 SST_FRIEND_SERIALIZE();
95 #endif // SST_CORE_SERIALIZATION_IMPL_SERIALIZE_STRING_H This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:42
std::string getType() override
Get the type of the variable represented by the ObjectMap.
Definition: serialize_string.h:47
Base serialize class.
Definition: serialize.h:113
Base class for objects created by the serializer mapping mode used to map the variables for objects...
Definition: objectMap.h:158
Definition: serialize_string.h:28
void * getAddr() override
Get the address of the represented object.
Definition: serialize_string.h:39
virtual bool isFundamental() override
Check to see if this ObjectMap represents a fundamental or a class treated as a fundamental.
Definition: serialize_string.h:45