33#include "protocol.hpp"
34#include <nonstd/expected.hpp>
35#include <unordered_map>
65 std::shared_ptr<models::bmi::Bmi_Adapter>
model,
79 -> expected<void, ProtocolError>;
89 std::shared_ptr<models::bmi::Bmi_Adapter>
model;
94 std::unordered_map<Protocol, std::unique_ptr<NgenBmiProtocol>>
protocols;
Definition protocols.hpp:45
auto run(const Protocol &protocol_name, const Context &ctx) const -> expected< void, ProtocolError >
Run a specific BMI protocol by name with a given context.
Definition protocols.cpp:70
std::unordered_map< Protocol, std::unique_ptr< NgenBmiProtocol > > protocols
Map of protocol name to protocol instance.
Definition protocols.hpp:94
NgenBmiProtocols()
Container and management interface for BMI protocols for use in ngen.
Definition protocols.cpp:54
std::shared_ptr< models::bmi::Bmi_Adapter > model
All protocols managed by this container will utilize the same model.
Definition protocols.hpp:89
std::map< std::string, JSONProperty > PropertyMap
Shorthand for a mapping between strings and properties.
Definition JSONProperty.hpp:21
Definition deserialization.hpp:40
Protocol
Definition protocols.hpp:41
auto operator<<(std::ostream &os, Protocol p) -> std::ostream &
Definition protocols.cpp:36
Definition AbstractCLibBmiAdapter.hpp:6
Definition protocol.hpp:100