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"
26namespace SST::Core::Serialization {
39 void*
getAddr() const final
override {
return addr_; }
41 std::string
get() const final
override {
return *addr_; }
43 void set_impl(
const std::string& value)
final override { *addr_ = value; }
47 std::string
getType() const final
override
63 ObjectMapString& operator=(
const ObjectMapString&) =
delete;
65 ~ObjectMapString()
override =
default;
69class 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 ) {
78 if ( SerOption::is_set(options, SerOption::map_read_only) ) obj_map->
setReadOnly();
79 ser.mapper().map_object(ser.getMapName(), obj_map);
82 if constexpr ( std::is_pointer_v<T> ) {
83 if ( mode == serializer::UNPACK ) str =
new std::string();
89 SST_FRIEND_SERIALIZE();
Definition serialize_string.h:29
ObjectMapString(const ObjectMapString &)=delete
Disallow copying and assignment.
void * getAddr() const final override
Get the address of the represented object.
Definition serialize_string.h:39
std::string getType() const final override
Get the type of the variable represented by the ObjectMap.
Definition serialize_string.h:47
bool isFundamental() const final override
Check to see if this ObjectMap represents a fundamental or a class treated as a fundamental.
Definition serialize_string.h:45
std::string get() const final override
Get the value of the variable as a string.
Definition serialize_string.h:41
Base class for objects created by the serializer mapping mode used to map the variables for objects.
Definition objectMap.h:188
ObjectMap()=default
Default constructor primarily used for the "top" object in the hierarchy.
void setReadOnly(bool state=true)
Set the read-only state of the object.
Definition objectMap.h:263
Base serialize class.
Definition serialize.h:132
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:43