44 ScalarData(TYPE data = DEFAULT_SCALAR_VALUE) : default_value_(data), data_(data) {}
45 ScalarData(
const Parameters<TYPE>& parameters) : ScalarData(parameters.default_value) {}
47 static const std::string static_datatype() {
48 return "scalar [" + get_type_string<TYPE>() +
"]";
50 static const std::string static_dataname() {
return "data"; }
54 void ClearData()
override { data_ = default_value_; }
56 TYPE
const& default_value()
const {
return default_value_; }
57 TYPE
const& data()
const {
return data_; }
59 void set_data(
const TYPE& data) { data_ = data; }
61 void set_data(
const Data<TYPE>& source) { data_ = source.data(); }
67 void SerializeBinary(std::ostream& stream, Serialization::Format format =
68 Serialization::Format::FULL)
const override {
69 Base::SerializeBinary(stream, format);
70 if (format == Serialization::Format::FULL || format == Serialization::Format::COMPACT) {
71 stream.write(
reinterpret_cast<const char*
>(&data_),
sizeof(TYPE));
75 void SerializeYAML(YAML::Node& node,
76 Serialization::Format format = Serialization::Format::FULL)
const override {
77 Base::SerializeYAML(node, format);
78 if (format == Serialization::Format::FULL || format == Serialization::Format::COMPACT) {
79 node[
"scalar_data"] = data_;
83 void YAMLDescription(YAML::Node& node, Serialization::Format format =
84 Serialization::Format::FULL)
const override {
85 Base::YAMLDescription(node, format);
86 if (format == Serialization::Format::FULL || format == Serialization::Format::COMPACT) {
87 node.push_back(
"scalar_data " + get_type_string<TYPE>() +
" (1)");