35#include <boost/type_index.hpp>
36#include <unordered_map>
37#include "Bmi_Adapter.hpp"
38#include "JSONProperty.hpp"
40#include "mass_balance.hpp"
43namespace models{
namespace bmi{
namespace protocols{
81 auto run(
const Protocol& protocol_name,
const Context& ctx)
const -> expected<void, ProtocolError>;
92 std::shared_ptr<models::bmi::Bmi_Adapter>
model;
97 std::unordered_map<Protocol, std::unique_ptr<NgenBmiProtocol>>
protocols;
Definition protocols.hpp:51
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:49
std::unordered_map< Protocol, std::unique_ptr< NgenBmiProtocol > > protocols
Map of protocol name to protocol instance.
Definition protocols.hpp:97
NgenBmiProtocols()
Container and management interface for BMI protocols for use in ngen.
Definition protocols.cpp:38
std::shared_ptr< models::bmi::Bmi_Adapter > model
All protocols managed by this container will utilize the same model.
Definition protocols.hpp:92
std::map< std::string, JSONProperty > PropertyMap
Shorthand for a mapping between strings and properties.
Definition JSONProperty.hpp:21
Protocol
Definition protocols.hpp:45
auto operator<<(std::ostream &os, Protocol p) -> std::ostream &
Definition protocols.cpp:30
Definition AbstractCLibBmiAdapter.hpp:6
Definition protocol.hpp:82