25#include "utilities/serialization/record_backend.hpp"
27#include <nonstd/expected.hpp>
28#include <protocol.hpp>
33using nonstd::expected;
108 -> expected<void, ProtocolError>
override;
112 -> expected<void, ProtocolError>
override;
126 -> expected<void, ProtocolError>
override;
Definition protocol.hpp:110
Definition serialization.hpp:69
virtual ~NgenSerializationProtocol() override
NgenSerializationProtocol()
Definition serialization.cpp:92
auto run(const ModelPtr &model, const Context &ctx) const -> expected< void, ProtocolError > override
Append one state record to the shared file when the frequency fires.
Definition serialization.cpp:100
bool check
Definition serialization.hpp:133
bool supported
Definition serialization.hpp:132
auto initialize(const ModelPtr &model, const Properties &properties) -> expected< void, ProtocolError > override
Parse top-level path and the save sub-block from the serialization configuration.
Definition serialization.cpp:288
nsel_NODISCARD auto check_support(const ModelPtr &model) -> expected< void, ProtocolError > override
Probe the model for all four reserved serialization variable names.
Definition serialization.cpp:241
bool is_supported() const override final
Whether the protocol is supported by the model.
Definition serialization.cpp:380
bool is_fatal
Definition serialization.hpp:134
std::shared_ptr<::ngen::serialization::RecordBackend > backend_
Definition serialization.hpp:139
int frequency
Definition serialization.hpp:131
Definition deserialization.hpp:40
constexpr ReservedVar RESERVED_VARS[]
Definition serialization.hpp:62
constexpr const char *const SERIALIZATION_STATE_NAME
Definition serialization.hpp:39
std::shared_ptr< models::bmi::Bmi_Adapter > ModelPtr
Definition protocol.hpp:107
constexpr const char *const SERIALIZATION_SAVE_KEY
Save-side sub-block key.
Definition serialization.hpp:46
constexpr const char *const SERIALIZATION_CREATE_NAME
Reserved BMI variable names driving the protocol's capture sequence.
Definition serialization.hpp:36
geojson::PropertyMap Properties
Definition protocol.hpp:108
constexpr const char *const SERIALIZATION_FREE_NAME
Definition serialization.hpp:37
constexpr const char *const SERIALIZATION_FATAL_KEY
Definition serialization.hpp:49
constexpr const char *const SERIALIZATION_FREQUENCY_KEY
Definition serialization.hpp:50
constexpr const char *const SERIALIZATION_SIZE_NAME
Definition serialization.hpp:38
constexpr const char *const SERIALIZATION_PATH_KEY
Shared path key at the top-level block.
Definition serialization.hpp:44
constexpr const char *const SERIALIZATION_CONFIGURATION_KEY
Top-level configuration key.
Definition serialization.hpp:42
constexpr const char *const SERIALIZATION_CHECK_KEY
Save-side / restore-side shared sub-keys.
Definition serialization.hpp:48
Definition AbstractCLibBmiAdapter.hpp:6
Definition DomainLayer.hpp:13
Definition protocol.hpp:100
(Reserved-name, expected-unit-string) pair used by both the save and restore protocols' check_support...
Definition serialization.hpp:57
const char * unit
Definition serialization.hpp:59
const char * name
Definition serialization.hpp:58