helics  2.8.1
ValueFederateManager.hpp
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
9 #include "../common/GuardedTypes.hpp"
10 #include "../core/federate_id.hpp"
11 #include "Inputs.hpp"
12 #include "Publications.hpp"
13 #include "data_view.hpp"
14 #include "gmlc/containers/DualMappedVector.hpp"
15 #include "helicsTypes.hpp"
16 
17 #include <map>
18 #include <memory>
19 #include <string>
20 #include <vector>
21 
22 namespace helics {
24 class Core;
25 class ValueFederate;
26 
29  std::string name;
30  std::string type;
31  std::string units;
34  int size{-1};
35  bool forward{true};
36  publication_info(const std::string& n_name,
37  const std::string& n_type,
38  const std::string& n_units):
39  name(n_name),
40  type(n_type), units(n_units)
41  {
42  }
43 };
45 struct input_info {
50  Time lastQuery{0.0};
51  int sourceIndex{0};
52  std::string name;
53  std::string type;
54  std::string units;
55  std::string pubtype;
56 
57  std::function<void(Input&, Time)> callback;
58  bool hasUpdate = false;
59  input_info(const std::string& n_name, const std::string& n_type, const std::string& n_units):
60  name(n_name), type(n_type), units(n_units)
61  {
62  }
63 };
64 
67  public:
70 
72  registerPublication(const std::string& key, std::string type, const std::string& units);
76  Input& registerInput(const std::string& key, std::string type, const std::string& units);
77 
84  void addAlias(const Input& inp, const std::string& shortcutName);
85 
92  void addAlias(const Publication& pub, const std::string& shortcutName);
97  void addTarget(const Publication& pub, const std::string& target);
102  void addTarget(const Input& inp, const std::string& target);
103 
108  void removeTarget(const Publication& pub, const std::string& target);
113  void removeTarget(const Input& inp, const std::string& target);
114 
120  void setDefaultValue(const Input& inp, const data_view& block);
121 
126  data_view getValue(const Input& inp);
127 
129  void publish(const Publication& pub, const data_view& block);
130 
132  static bool hasUpdate(const Input& inp);
134  static Time getLastUpdateTime(const Input& inp);
135 
140  void updateTime(Time newTime, Time oldTime);
146  std::string localQuery(const std::string& queryStr) const;
151  std::vector<int> queryUpdates();
152 
154  const std::string& getTarget(const Input& inp) const;
155 
159  Input& getInput(const std::string& key);
160  const Input& getInput(const std::string& key) const;
162  Input& getInput(int index);
163  const Input& getInput(int index) const;
167  const Input& getSubscription(const std::string& key) const;
168  Input& getSubscription(const std::string& key);
169 
173  Publication& getPublication(const std::string& key);
174  const Publication& getPublication(const std::string& key) const;
175 
176  Publication& getPublication(int index);
177  const Publication& getPublication(int index) const;
178 
183  void setInputNotificationCallback(std::function<void(Input&, Time)> callback);
188  static void setInputNotificationCallback(const Input& inp,
189  std::function<void(Input&, Time)> callback);
190 
192  void disconnect();
193 
195  int getPublicationCount() const;
197  int getInputCount() const;
200  void clearUpdates();
204  static void clearUpdate(const Input& inp);
205 
206  public:
207  bool useJsonSerialization{false};
208  private:
209  local_federate_id fedID;
211  gmlc::containers::
212  DualMappedVector<Input, std::string, interface_handle, reference_stability::stable>>
213  inputs;
214  shared_guarded_m<gmlc::containers::DualMappedVector<Publication,
215  std::string,
217  reference_stability::stable>>
218  publications;
219  Time CurrentTime = Time(-1.0);
220  Core* coreObject{nullptr};
221 
222  ValueFederate* fed{nullptr};
223  atomic_guarded<std::function<void(Input&, Time)>>
224  allCallback;
226  inputData;
228  targetIDs;
230  inputTargets;
231  private:
232  void getUpdateFromCore(interface_handle handle);
233 };
234 
235 } // namespace helics
helics::input_info::callback
std::function< void(Input &, Time)> callback
callback to trigger on update
Definition: ValueFederateManager.hpp:57
helics::timeZero
constexpr Time timeZero
Definition: helics-time.hpp:31
helics::Input
Definition: Inputs.hpp:37
data
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
helics::input_info
Definition: ValueFederateManager.hpp:45
helicsTypes.hpp
helics_data_type_raw
@ helics_data_type_raw
Definition: helics_enums.h:71
helics::initializationTime
constexpr Time initializationTime
Definition: helics-time.hpp:38
helics::ValueFederateManager::clearUpdates
void clearUpdates()
Definition: ValueFederateManager.cpp:529
helics::publication_info::type
std::string type
publication type
Definition: ValueFederateManager.hpp:30
helics::NamedPoint::name
std::string name
the text value for the named point
Definition: helicsTypes.hpp:113
helicsInputGetRawValue
void helicsInputGetRawValue(helics_input inp, void *data, int maxDatalen, int *actualSize, helics_error *err)
Definition: ValueFederateExport.cpp:690
helicsInputSetDefaultBoolean
void helicsInputSetDefaultBoolean(helics_input inp, helics_bool val, helics_error *err)
Definition: ValueFederateExport.cpp:1021
helics::NamedPoint
Definition: helicsTypes.hpp:111
helicsInputGetVector
void helicsInputGetVector(helics_input inp, double data[], int maxlen, int *actualSize, helics_error *err)
Definition: ValueFederateExport.cpp:908
helics::ValueFederate
Definition: application_api/ValueFederate.hpp:25
helicsFederateRegisterSubscription
helics_input helicsFederateRegisterSubscription(helics_federate fed, const char *key, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:77
helicsInputGetBoolean
helics_bool helicsInputGetBoolean(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:765
helicsInputGetKey
const char * helicsInputGetKey(helics_input inp)
Definition: ValueFederateExport.cpp:1156
helicsFederateGetPublication
helics_publication helicsFederateGetPublication(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:334
helics::InvalidIdentifier
Definition: core-exceptions.hpp:39
helicsPublicationSetInfo
void helicsPublicationSetInfo(helics_publication pub, const char *info, helics_error *err)
Definition: ValueFederateExport.cpp:1299
helics_error_invalid_object
@ helics_error_invalid_object
Definition: helics_enums.h:206
helics::input_info::name
std::string name
input name
Definition: ValueFederateManager.hpp:52
helicsPublicationPublishTime
void helicsPublicationPublishTime(helics_publication pub, helics_time val, helics_error *err)
Definition: ValueFederateExport.cpp:553
helicsInputGetString
void helicsInputGetString(helics_input inp, char *outputString, int maxStringLen, int *actualLength, helics_error *err)
Definition: ValueFederateExport.cpp:724
helics::local_federate_id
Definition: federate_id.hpp:22
helics::iteration_result
iteration_result
Definition: core-types.hpp:81
helicsFederateRegisterGlobalTypeInput
helics_publication helicsFederateRegisterGlobalTypeInput(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:248
helicsFederateGetInputCount
int helicsFederateGetInputCount(helics_federate fed)
Definition: ValueFederateExport.cpp:1450
helicsInputGetRawValueSize
int helicsInputGetRawValueSize(helics_input inp)
Definition: ValueFederateExport.cpp:671
helics_publication
void * helics_publication
Definition: api-data.h:31
helics::NamedPoint::value
double value
the data value for the named point
Definition: helicsTypes.hpp:114
helics::ValueFederateManager::getInputCount
int getInputCount() const
Definition: ValueFederateManager.cpp:524
helicsPublicationSetMinimumChange
void helicsPublicationSetMinimumChange(helics_publication pub, double tolerance, helics_error *err)
Definition: ValueFederateExport.cpp:1379
helics::publication_info::size
int size
required size of a publication
Definition: ValueFederateManager.hpp:34
helicsInputGetType
const char * helicsInputGetType(helics_input inp)
Definition: ValueFederateExport.cpp:1105
helicsInputGetNamedPoint
void helicsInputGetNamedPoint(helics_input inp, char *outputString, int maxStringLen, int *actualLength, double *val, helics_error *err)
Definition: ValueFederateExport.cpp:935
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
helicsPublicationGetKey
const char * helicsPublicationGetKey(helics_publication pub)
Definition: ValueFederateExport.cpp:1190
helics_time
double helics_time
Definition: api-data.h:81
helicsInputGetOption
int helicsInputGetOption(helics_input inp, int option)
Definition: ValueFederateExport.cpp:1315
helicsInputSetDefaultTime
void helicsInputSetDefaultTime(helics_input inp, helics_time val, helics_error *err)
Definition: ValueFederateExport.cpp:1039
helicsFederateGetPublicationByIndex
helics_publication helicsFederateGetPublicationByIndex(helics_federate fed, int index, helics_error *err)
Definition: ValueFederateExport.cpp:359
helicsInputGetComplexObject
helics_complex helicsInputGetComplexObject(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:855
helics::ValueFederateManager::localQuery
std::string localQuery(const std::string &queryStr) const
Definition: ValueFederateManager.cpp:305
helics::publication_info::coreID
interface_handle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:32
helics::input_info::lastUpdate
Time lastUpdate
the time the subscription was last updated
Definition: ValueFederateManager.hpp:49
helicsPublicationPublishComplex
void helicsPublicationPublishComplex(helics_publication pub, double real, double imag, helics_error *err)
Definition: ValueFederateExport.cpp:582
helics::ValueFederateManager::clearUpdate
static void clearUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:534
helics_false
const helics_bool helics_false
Definition: api-data.h:95
helicsFederateGetSubscription
helics_input helicsFederateGetSubscription(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:441
helics::InputObject
Definition: api_objects.h:101
helicsInputSetDefaultChar
void helicsInputSetDefaultChar(helics_input inp, char val, helics_error *err)
Definition: ValueFederateExport.cpp:1050
helics::data_view
Definition: data_view.hpp:22
helics::publication_info::id
publication_id_t id
the id used as the identifier
Definition: ValueFederateManager.hpp:33
helics_true
const helics_bool helics_true
Definition: api-data.h:94
helicsInputSetInfo
void helicsInputSetInfo(helics_input inp, const char *info, helics_error *err)
Definition: ValueFederateExport.cpp:1268
helicsFederateRegisterGlobalTypePublication
helics_publication helicsFederateRegisterGlobalTypePublication(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:144
helicsPublicationPublishChar
void helicsPublicationPublishChar(helics_publication pub, char val, helics_error *err)
Definition: ValueFederateExport.cpp:568
helics::ValueFederateManager::startupToInitializeStateTransition
void startupToInitializeStateTransition()
Definition: ValueFederateManager.cpp:292
helics::ValueFederateManager::removeTarget
void removeTarget(const Publication &pub, const std::string &target)
Definition: ValueFederateManager.cpp:152
helicsFederateRegisterGlobalPublication
helics_publication helicsFederateRegisterGlobalPublication(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:167
helics::ValueFederateManager::publish
void publish(const Publication &pub, const data_view &block)
Definition: ValueFederateManager.cpp:217
helicsInputLastUpdateTime
helics_time helicsInputLastUpdateTime(helics_input ipt)
Definition: ValueFederateExport.cpp:1408
helicsInputAddTarget
void helicsInputAddTarget(helics_input ipt, const char *target, helics_error *err)
Definition: ValueFederateExport.cpp:661
helics_data_type_any
@ helics_data_type_any
Definition: helics_enums.h:77
helics::input_info::lastQuery
Time lastQuery
the time the query was made
Definition: ValueFederateManager.hpp:50
helicsPublicationSetOption
void helicsPublicationSetOption(helics_publication pub, int option, int value, helics_error *err)
Definition: ValueFederateExport.cpp:1363
helicsFederateRegisterInput
helics_input helicsFederateRegisterInput(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:218
helics::Core
Definition: core/Core.hpp:42
helics::ValueFederateManager::useJsonSerialization
bool useJsonSerialization
all outgoing data should be serialized as JSON
Definition: ValueFederateManager.hpp:207
helics::ValueFederateManager::addAlias
void addAlias(const Input &inp, const std::string &shortcutName)
Definition: ValueFederateManager.cpp:106
helicsPublicationPublishVector
void helicsPublicationPublishVector(helics_publication pub, const double *vectorInput, int vectorLength, helics_error *err)
Definition: ValueFederateExport.cpp:596
helicsInputGetExtractionUnits
const char * helicsInputGetExtractionUnits(helics_input ipt)
Definition: ValueFederateExport.cpp:1222
helicsPublicationGetInfo
const char * helicsPublicationGetInfo(helics_publication pub)
Definition: ValueFederateExport.cpp:1283
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helicsFederateRegisterTypePublication
helics_publication helicsFederateRegisterTypePublication(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:98
helics::ValueFederateManager::getTarget
const std::string & getTarget(const Input &inp) const
Definition: ValueFederateManager.cpp:398
helics::typeNameStringRef
const std::string & typeNameStringRef(data_type type)
Definition: helicsTypes.cpp:27
helicsInputGetTime
helics_time helicsInputGetTime(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:798
helics::ValueFederateManager::getSubscription
const Input & getSubscription(const std::string &key) const
Definition: ValueFederateManager.cpp:449
helics_complex
Definition: api-data.h:137
helics_error_invalid_argument
@ helics_error_invalid_argument
Definition: helics_enums.h:204
helics::ValueFederateManager::getPublicationCount
int getPublicationCount() const
Definition: ValueFederateManager.cpp:519
helics::ValueFederateManager::getLastUpdateTime
static Time getLastUpdateTime(const Input &inp)
Definition: ValueFederateManager.cpp:231
helics::input_info::coreID
interface_handle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:46
helics::ValueFederateManager::registerInput
Input & registerInput(const std::string &key, std::string type, const std::string &units)
Definition: ValueFederateManager.cpp:77
helicsPublicationGetUnits
const char * helicsPublicationGetUnits(helics_publication pub)
Definition: ValueFederateExport.cpp:1243
helics::input_info::id
input_id_t id
the id used as the identifier
Definition: ValueFederateManager.hpp:47
helicsPublicationPublishNamedPoint
void helicsPublicationPublishNamedPoint(helics_publication pub, const char *str, double val, helics_error *err)
Definition: ValueFederateExport.cpp:614
helics::identifier_id_t< identifier_type, identifiers::publication, invalid_id_value >
helicsPublicationPublishInteger
void helicsPublicationPublishInteger(helics_publication pub, int64_t val, helics_error *err)
Definition: ValueFederateExport.cpp:511
helics_time_invalid
const helics_time helics_time_invalid
Definition: api-data.h:85
helics::Publication::isValid
bool isValid() const
Definition: Publications.hpp:184
helicsSubscriptionGetKey
const char * helicsSubscriptionGetKey(helics_input sub)
Definition: ValueFederateExport.cpp:1173
helicsPublicationPublishBoolean
void helicsPublicationPublishBoolean(helics_publication pub, helics_bool val, helics_error *err)
Definition: ValueFederateExport.cpp:525
helicsInputGetVectorSize
int helicsInputGetVectorSize(helics_input inp)
Definition: ValueFederateExport.cpp:876
helics::FedObject
Definition: api_objects.h:82
helicsInputGetInjectionUnits
const char * helicsInputGetInjectionUnits(helics_input ipt)
Definition: ValueFederateExport.cpp:1206
helicsFederateRegisterPublication
helics_publication helicsFederateRegisterPublication(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:118
fed
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
helics::ValueFederateManager::queryUpdates
std::vector< int > queryUpdates()
Definition: ValueFederateManager.cpp:382
helicsPublicationPublishDouble
void helicsPublicationPublishDouble(helics_publication pub, double val, helics_error *err)
Definition: ValueFederateExport.cpp:539
helics::JsonBuilder::addElement
void addElement(const std::string &path, const std::string &value)
Definition: JsonBuilder.cpp:100
helics::ValueFederateManager::initializeToExecuteStateTransition
void initializeToExecuteStateTransition(iteration_result result)
Definition: ValueFederateManager.cpp:299
helicsPublicationGetType
const char * helicsPublicationGetType(helics_publication pub)
Definition: ValueFederateExport.cpp:1139
helics::interface_handle
Definition: federate_id.hpp:65
helicsInputClearUpdate
void helicsInputClearUpdate(helics_input ipt)
Definition: ValueFederateExport.cpp:1425
helics::ValueFederateManager
Definition: ValueFederateManager.hpp:66
helics::input_info::units
std::string units
input units
Definition: ValueFederateManager.hpp:54
helics_data_type
helics_data_type
Definition: helics_enums.h:51
helicsInputSetDefaultNamedPoint
void helicsInputSetDefaultNamedPoint(helics_input inp, const char *str, double val, helics_error *err)
Definition: ValueFederateExport.cpp:1089
helicsInputSetDefaultRaw
void helicsInputSetDefaultRaw(helics_input inp, const void *data, int dataLen, helics_error *err)
Definition: ValueFederateExport.cpp:976
helics::publication_info::name
std::string name
publication name
Definition: ValueFederateManager.hpp:29
helicsInputSetDefaultComplex
void helicsInputSetDefaultComplex(helics_input inp, double real, double imag, helics_error *err)
Definition: ValueFederateExport.cpp:1059
helics::ValueFederateManager::addTarget
void addTarget(const Publication &pub, const std::string &target)
Definition: ValueFederateManager.cpp:127
helics::JsonBuilder
Definition: JsonBuilder.hpp:61
helics::input_info::pubtype
std::string pubtype
the listed type of the corresponding publication
Definition: ValueFederateManager.hpp:55
helicsPublicationIsValid
helics_bool helicsPublicationIsValid(helics_publication pub)
Definition: ValueFederateExport.cpp:643
helics_error
Definition: api-data.h:166
helics::Input::isValid
bool isValid() const
Definition: Inputs.hpp:184
helics::Publication
Definition: Publications.hpp:23
helicsPublicationPublishString
void helicsPublicationPublishString(helics_publication pub, const char *str, helics_error *err)
Definition: ValueFederateExport.cpp:497
helicsInputGetInteger
int64_t helicsInputGetInteger(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:750
ValueFederate.h
Functions related to value federates for the C api.
helicsInputGetComplex
void helicsInputGetComplex(helics_input inp, double *real, double *imag, helics_error *err)
Definition: ValueFederateExport.cpp:833
helics_data_type_string
@ helics_data_type_string
Definition: helics_enums.h:53
helicsFederateGetPublicationCount
int helicsFederateGetPublicationCount(helics_federate fed)
Definition: ValueFederateExport.cpp:1440
helics::ValueFederateManager::hasUpdate
static bool hasUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:222
helics::data_view::data
const char * data() const noexcept
Definition: data_view.hpp:105
helicsInputSetDefaultString
void helicsInputSetDefaultString(helics_input inp, const char *str, helics_error *err)
Definition: ValueFederateExport.cpp:996
helics::Publication::handle
interface_handle handle
the internal id of the publication
Definition: Publications.hpp:26
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::data_type
data_type
Definition: helicsTypes.hpp:275
helicsFederateRegisterGlobalInput
helics_publication helicsFederateRegisterGlobalInput(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:268
helics_data_type_time
@ helics_data_type_time
Definition: helics_enums.h:69
helics::data_view::size
size_t size() const noexcept
Definition: data_view.hpp:107
helicsInputGetChar
char helicsInputGetChar(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:816
helics::ValueFederateManager::setDefaultValue
void setDefaultValue(const Input &inp, const data_view &block)
Definition: ValueFederateManager.cpp:172
helicsFederateClearUpdates
void helicsFederateClearUpdates(helics_federate fed)
Definition: ValueFederateExport.cpp:467
helics::input_info::sourceIndex
int sourceIndex
the index of the data source for multi-source inputs
Definition: ValueFederateManager.hpp:51
helicsPublicationPublishRaw
void helicsPublicationPublishRaw(helics_publication pub, const void *data, int datalen, helics_error *err)
Definition: ValueFederateExport.cpp:483
helicsInputSetMinimumChange
void helicsInputSetMinimumChange(helics_input inp, double tolerance, helics_error *err)
Definition: ValueFederateExport.cpp:1388
helicsPublicationAddTarget
void helicsPublicationAddTarget(helics_publication pub, const char *target, helics_error *err)
Definition: ValueFederateExport.cpp:632
helics::ValueFederateManager::getInput
Input & getInput(const std::string &key)
Definition: ValueFederateManager.cpp:421
helics::getValue
X getValue(ValueFederate &fed, const std::string &key)
Definition: Subscriptions.hpp:67
helics::ValueFederateManager::getValue
data_view getValue(const Input &inp)
Definition: ValueFederateManager.cpp:200
helicsInputGetPublicationType
const char * helicsInputGetPublicationType(helics_input ipt)
Definition: ValueFederateExport.cpp:1122
helicsInputGetDouble
double helicsInputGetDouble(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:783
helicsInputSetDefaultInteger
void helicsInputSetDefaultInteger(helics_input inp, int64_t val, helics_error *err)
Definition: ValueFederateExport.cpp:1012
helics::input_info::hasUpdate
bool hasUpdate
indicator that there was an update
Definition: ValueFederateManager.hpp:58
helicsInputGetInfo
const char * helicsInputGetInfo(helics_input inp)
Definition: ValueFederateExport.cpp:1252
helicsPublicationGetOption
int helicsPublicationGetOption(helics_publication pub, int option)
Definition: ValueFederateExport.cpp:1347
helicsInputGetStringSize
int helicsInputGetStringSize(helics_input inp)
Definition: ValueFederateExport.cpp:892
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:26
helicsFederateRegisterTypeInput
helics_input helicsFederateRegisterTypeInput(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:199
helicsFederatePublishJSON
void helicsFederatePublishJSON(helics_federate fed, const char *json, helics_error *err)
Definition: ValueFederateExport.cpp:314
helicsFederateRegisterFromPublicationJSON
void helicsFederateRegisterFromPublicationJSON(helics_federate fed, const char *json, helics_error *err)
Definition: ValueFederateExport.cpp:297
helics_input
void * helics_input
Definition: api-data.h:26
helics::input_info::type
std::string type
input type
Definition: ValueFederateManager.hpp:53
helics::publication_info::units
std::string units
publication units
Definition: ValueFederateManager.hpp:31
helics::PublicationObject
Definition: api_objects.h:109
helics::publication_info
Definition: ValueFederateManager.hpp:28
helicsInputIsUpdated
helics_bool helicsInputIsUpdated(helics_input ipt)
Definition: ValueFederateExport.cpp:1397
helicsInputSetOption
void helicsInputSetOption(helics_input inp, int option, int value, helics_error *err)
Definition: ValueFederateExport.cpp:1331
helics_bool
int helics_bool
Definition: api-data.h:92
helicsInputSetDefaultVector
void helicsInputSetDefaultVector(helics_input inp, const double *vectorInput, int vectorLength, helics_error *err)
Definition: ValueFederateExport.cpp:1069
helics::JsonBuilder::generate
std::string generate()
Definition: JsonBuilder.cpp:159
helics::isBlockSizeValid
bool isBlockSizeValid(int size, const publication_info &pubI)
Definition: ValueFederateManager.cpp:212
helicsInputIsValid
helics_bool helicsInputIsValid(helics_input ipt)
Definition: ValueFederateExport.cpp:652
helics::Input::handle
interface_handle handle
the id as generated by the Federate
Definition: Inputs.hpp:40
helicsFederateGetInput
helics_input helicsFederateGetInput(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:388
helicsFederateGetInputByIndex
helics_input helicsFederateGetInputByIndex(helics_federate fed, int index, helics_error *err)
Definition: ValueFederateExport.cpp:414
helics::ValueFederateManager::setInputNotificationCallback
void setInputNotificationCallback(std::function< void(Input &, Time)> callback)
Definition: ValueFederateManager.cpp:542
helics::input_info::lastData
data_view lastData
the last published data from a target
Definition: ValueFederateManager.hpp:48
helics::ValueFederateManager::getPublication
Publication & getPublication(const std::string &key)
Definition: ValueFederateManager.cpp:490
helicsInputSetDefaultDouble
void helicsInputSetDefaultDouble(helics_input inp, double val, helics_error *err)
Definition: ValueFederateExport.cpp:1030
helics::ValueFederateManager::disconnect
void disconnect()
Definition: ValueFederateManager.cpp:23
helics::ValueFederateManager::updateTime
void updateTime(Time newTime, Time oldTime)
Definition: ValueFederateManager.cpp:240
helicsInputGetUnits
const char * helicsInputGetUnits(helics_input inp)
Definition: ValueFederateExport.cpp:1238
helics_federate
void * helics_federate
Definition: api-data.h:56
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:249