9 #include "../common/GuardedTypes.hpp"
10 #include "../core/LocalFederateId.hpp"
12 #include "ValueFederate.hpp"
13 #include "data_view.hpp"
14 #include "gmlc/containers/DualStringMappedVector.hpp"
37 publication_info(std::string_view n_name, std::string_view n_type, std::string_view n_units):
57 InputData(std::string_view n_name, std::string_view n_type, std::string_view n_units):
73 registerPublication(std::string_view key, std::string_view type, std::string_view units);
77 Input&
registerInput(std::string_view key, std::string_view type, std::string_view units);
85 void addAlias(
const Input& inp, std::string_view shortcutName);
147 std::string
localQuery(std::string_view queryStr)
const;
191 std::function<
void(
Input&,
Time)> callback);
207 bool getUpdateFromCore(
Input& inp);
213 shared_guarded_m_opt<gmlc::containers::DualStringMappedVector<Input, InterfaceHandle>> inputs;
214 shared_guarded_m_opt<gmlc::containers::DualStringMappedVector<Publication, InterfaceHandle>>
216 Time CurrentTime{-1.0};
217 Core* coreObject{
nullptr};
219 ValueFederate* fed{
nullptr};
221 atomic_guarded<std::function<void(Input&,
Time)>> allCallback;
223 shared_guarded_opt<std::deque<InputData>> inputData;
225 shared_guarded_opt<std::multimap<std::string, InterfaceHandle>> targetIDs;
227 shared_guarded_opt<std::multimap<InterfaceHandle, std::string>> inputTargets;
230 void getUpdateFromCore(InterfaceHandle handle);
Definition: core/Core.hpp:41
Definition: LocalFederateId.hpp:65
Definition: LocalFederateId.hpp:22
Definition: Publications.hpp:25
Definition: ValueFederateManager.hpp:64
std::vector< int > queryUpdates()
Definition: ValueFederateManager.cpp:397
void addTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:138
void publish(const Publication &pub, const data_view &block)
Definition: ValueFederateManager.cpp:229
void updateTime(Time newTime, Time oldTime)
Definition: ValueFederateManager.cpp:266
const Input & getInputByTarget(std::string_view key) const
Definition: ValueFederateManager.cpp:464
data_view getValue(const Input &inp)
Definition: ValueFederateManager.cpp:212
void setDefaultValue(const Input &inp, const data_view &block)
Definition: ValueFederateManager.cpp:184
void disconnect()
Definition: ValueFederateManager.cpp:31
static Time getLastUpdateTime(const Input &inp)
Definition: ValueFederateManager.cpp:243
Input & getInput(std::string_view key)
Definition: ValueFederateManager.cpp:436
void setInputNotificationCallback(std::function< void(Input &, Time)> callback)
Definition: ValueFederateManager.cpp:557
void clearUpdates()
Definition: ValueFederateManager.cpp:544
Publication & getPublication(std::string_view key)
Definition: ValueFederateManager.cpp:505
void startupToInitializeStateTransition()
Definition: ValueFederateManager.cpp:308
void removeTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:164
std::string localQuery(std::string_view queryStr) const
Definition: ValueFederateManager.cpp:320
bool useJsonSerialization
all outgoing data should be serialized as JSON
Definition: ValueFederateManager.hpp:210
static bool hasUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:234
static void clearUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:549
int getInputCount() const
Definition: ValueFederateManager.cpp:539
int getPublicationCount() const
Definition: ValueFederateManager.cpp:534
void initializeToExecuteStateTransition(iteration_time result)
Definition: ValueFederateManager.cpp:315
const std::string & getTarget(const Input &inp) const
Definition: ValueFederateManager.cpp:413
void addAlias(const Input &inp, std::string_view shortcutName)
Definition: ValueFederateManager.cpp:115
Input & registerInput(std::string_view key, std::string_view type, std::string_view units)
Definition: ValueFederateManager.cpp:85
Definition: application_api/ValueFederate.hpp:28
Definition: data_view.hpp:22
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
Definition: helicsTime.hpp:43
Definition: ValueFederateManager.hpp:29
std::string type
publication type
Definition: ValueFederateManager.hpp:31
std::string name
publication name
Definition: ValueFederateManager.hpp:30
PublicationId id
the id used as the identifier
Definition: ValueFederateManager.hpp:34
int size
required size of a publication
Definition: ValueFederateManager.hpp:35
InterfaceHandle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:33
std::string units
publication units
Definition: ValueFederateManager.hpp:32