helics  3.3.0
ValueFederateManager.hpp
1 /*
2 Copyright (c) 2017-2022,
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/LocalFederateId.hpp"
11 #include "Inputs.hpp"
12 #include "ValueFederate.hpp"
13 #include "data_view.hpp"
14 #include "gmlc/containers/DualStringMappedVector.hpp"
15 #include "helicsTypes.hpp"
16 
17 #include <deque>
18 #include <map>
19 #include <memory>
20 #include <string>
21 #include <vector>
22 
23 namespace helics {
25 class Core;
26 class ValueFederate;
27 
30  std::string name;
31  std::string type;
32  std::string units;
35  int size{-1};
36  bool forward{true};
37  publication_info(std::string_view n_name, std::string_view n_type, std::string_view n_units):
38  name(n_name), type(n_type), units(n_units)
39  {
40  }
41 };
43 struct InputData {
48  Time lastQuery{0.0};
49  int sourceIndex{0};
50  std::string name;
51  std::string type;
52  std::string units;
53  std::string pubtype;
54 
55  std::function<void(Input&, Time)> callback;
56  bool hasUpdate = false;
57  InputData(std::string_view n_name, std::string_view n_type, std::string_view n_units):
58  name(n_name), type(n_type), units(n_units)
59  {
60  }
61 };
62 
65  public:
68 
70  registerPublication(std::string_view key, std::string_view type, std::string_view units);
74  Input& registerInput(std::string_view key, std::string_view type, std::string_view units);
75 
82  void addAlias(const Input& inp, std::string_view shortcutName);
83 
90  void addAlias(const Publication& pub, std::string_view shortcutName);
95  void addTarget(const Publication& pub, std::string_view target);
100  void addTarget(const Input& inp, std::string_view target);
101 
106  void removeTarget(const Publication& pub, std::string_view target);
111  void removeTarget(const Input& inp, std::string_view target);
112 
118  void setDefaultValue(const Input& inp, const data_view& block);
119 
124  data_view getValue(const Input& inp);
125 
127  void publish(const Publication& pub, const data_view& block);
128 
130  static bool hasUpdate(const Input& inp);
132  static Time getLastUpdateTime(const Input& inp);
133 
138  void updateTime(Time newTime, Time oldTime);
144  std::string localQuery(std::string_view queryStr) const;
149  std::vector<int> queryUpdates();
150 
152  const std::string& getTarget(const Input& inp) const;
153 
157  Input& getInput(std::string_view key);
158  const Input& getInput(std::string_view key) const;
160  Input& getInput(int index);
161  const Input& getInput(int index) const;
165  const Input& getSubscription(std::string_view key) const;
166  Input& getSubscription(std::string_view key);
167 
171  Publication& getPublication(std::string_view key);
172  const Publication& getPublication(std::string_view key) const;
173 
174  Publication& getPublication(int index);
175  const Publication& getPublication(int index) const;
176 
181  void setInputNotificationCallback(std::function<void(Input&, Time)> callback);
186  static void setInputNotificationCallback(const Input& inp,
187  std::function<void(Input&, Time)> callback);
188 
190  void disconnect();
191 
193  int getPublicationCount() const;
195  int getInputCount() const;
198  void clearUpdates();
202  static void clearUpdate(const Input& inp);
203  bool getUpdateFromCore(Input& inp);
204 
205  public:
206  bool useJsonSerialization{false};
207  private:
208  LocalFederateId fedID;
211  publications;
212  Time CurrentTime{-1.0};
213  Core* coreObject{nullptr};
214 
215  ValueFederate* fed{nullptr};
217  atomic_guarded<std::function<void(Input&, Time)>> allCallback;
224 
225  private:
226  void getUpdateFromCore(InterfaceHandle handle);
227 };
228 
229 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helicsTime.hpp:31
helics::Input
Definition: Inputs.hpp:38
helicsInputGetUnits
const char * helicsInputGetUnits(HelicsInput inp)
Definition: ValueFederateExport.cpp:1320
helicsInputGetVectorSize
int helicsInputGetVectorSize(HelicsInput inp)
Definition: ValueFederateExport.cpp:893
helics::InputData::pubtype
std::string pubtype
the listed type of the corresponding publication
Definition: ValueFederateManager.hpp:53
helicsPublicationGetName
const char * helicsPublicationGetName(HelicsPublication pub)
Definition: ValueFederateExport.cpp:1269
HelicsTime
double HelicsTime
Definition: api-data.h:100
helicsTypes.hpp
helicsInputLastUpdateTime
HelicsTime helicsInputLastUpdateTime(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1560
HELICS_FALSE
const HelicsBool HELICS_FALSE
Definition: api-data.h:115
helics::initializationTime
constexpr Time initializationTime
Definition: helicsTime.hpp:40
helicsInputSetOption
void helicsInputSetOption(HelicsInput inp, int option, int value, HelicsError *err)
Definition: ValueFederateExport.cpp:1483
helics::ValueFederateManager::clearUpdates
void clearUpdates()
Definition: ValueFederateManager.cpp:541
helics::Input::checkUpdate
bool checkUpdate(bool assumeUpdate=false)
Definition: Inputs.cpp:516
helics::InputData::sourceIndex
int sourceIndex
the index of the data source for multi-source inputs
Definition: ValueFederateManager.hpp:49
helics::InputData::id
InputId id
the id used as the identifier
Definition: ValueFederateManager.hpp:45
HELICS_TRUE
const HelicsBool HELICS_TRUE
Definition: api-data.h:114
helics::publication_info::type
std::string type
publication type
Definition: ValueFederateManager.hpp:31
helics::NamedPoint::name
std::string name
the text value for the named point
Definition: helicsTypes.hpp:112
helics::NamedPoint
Definition: helicsTypes.hpp:110
helics::IdentifierId< IdentifierType, Identifiers::PUBLICATION, invalid_id_value >
helicsPublicationPublishString
void helicsPublicationPublishString(HelicsPublication pub, const char *str, HelicsError *err)
Definition: ValueFederateExport.cpp:496
helicsInputGetName
const char * helicsInputGetName(HelicsInput inp)
Definition: ValueFederateExport.cpp:1233
helicsInputGetBytes
void helicsInputGetBytes(HelicsInput inp, void *data, int maxDatalen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:707
helicsInputSetDefaultComplexVector
void helicsInputSetDefaultComplexVector(HelicsInput inp, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:1133
helics::ValueFederate
Definition: application_api/ValueFederate.hpp:26
helicsInputSetDefaultNamedPoint
void helicsInputSetDefaultNamedPoint(HelicsInput inp, const char *str, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:1158
HELICS_DATA_TYPE_JSON
@ HELICS_DATA_TYPE_JSON
Definition: helics_enums.h:90
helicsPublicationIsValid
HelicsBool helicsPublicationIsValid(HelicsPublication pub)
Definition: ValueFederateExport.cpp:660
helics::InvalidIdentifier
Definition: core-exceptions.hpp:39
helics::InputData::type
std::string type
input type
Definition: ValueFederateManager.hpp:51
HELICS_DATA_TYPE_ANY
@ HELICS_DATA_TYPE_ANY
Definition: helics_enums.h:95
HelicsDataTypes
HelicsDataTypes
Definition: helics_enums.h:65
helicsFederateGetPublicationCount
int helicsFederateGetPublicationCount(HelicsFederate fed)
Definition: ValueFederateExport.cpp:1592
helics::InputData::hasUpdate
bool hasUpdate
indicator that there was an update
Definition: ValueFederateManager.hpp:56
helics::publication_info::coreID
InterfaceHandle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:33
helicsPublicationPublishComplex
void helicsPublicationPublishComplex(HelicsPublication pub, double real, double imag, HelicsError *err)
Definition: ValueFederateExport.cpp:581
helics::Input::isUpdated
bool isUpdated()
Definition: Inputs.cpp:569
helicsInputIsValid
HelicsBool helicsInputIsValid(HelicsInput ipt)
Definition: ValueFederateExport.cpp:669
helics::InputData::lastQuery
Time lastQuery
the time the query was made
Definition: ValueFederateManager.hpp:48
helicsInputSetDefaultInteger
void helicsInputSetDefaultInteger(HelicsInput inp, int64_t val, HelicsError *err)
Definition: ValueFederateExport.cpp:1056
helicsPublicationAddTarget
void helicsPublicationAddTarget(HelicsPublication pub, const char *target, HelicsError *err)
Definition: ValueFederateExport.cpp:649
HelicsFederate
void * HelicsFederate
Definition: api-data.h:65
helicsInputSetDefaultComplex
void helicsInputSetDefaultComplex(HelicsInput inp, double real, double imag, HelicsError *err)
Definition: ValueFederateExport.cpp:1103
HELICS_ERROR_INVALID_OBJECT
@ HELICS_ERROR_INVALID_OBJECT
Definition: helics_enums.h:238
helics::getValue
X getValue(ValueFederate &fed, std::string_view key)
Definition: Subscriptions.hpp:31
helics::getCleanedTypeName
std::string_view getCleanedTypeName(std::string_view typeName)
Definition: helicsTypes.cpp:264
helics::NamedPoint::value
double value
the data value for the named point
Definition: helicsTypes.hpp:113
helics::InterfaceHandle
Definition: LocalFederateId.hpp:65
helics::ValueFederateManager::getInputCount
int getInputCount() const
Definition: ValueFederateManager.cpp:536
helics::publication_info::size
int size
required size of a publication
Definition: ValueFederateManager.hpp:35
helics::InputData::coreID
InterfaceHandle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:44
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
helics::fileops::JsonBuilder::generate
std::string generate()
Definition: JsonBuilder.cpp:159
helics::ValueFederateManager::addTarget
void addTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:134
helicsInputGetTime
HelicsTime helicsInputGetTime(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:815
HelicsInput
void * HelicsInput
Definition: api-data.h:26
helics::InputData::lastData
data_view lastData
the last published data from a target
Definition: ValueFederateManager.hpp:46
HELICS_DATA_TYPE_STRING
@ HELICS_DATA_TYPE_STRING
Definition: helics_enums.h:68
helics::ValueFederateManager::clearUpdate
static void clearUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:546
helicsFederateGetInputCount
int helicsFederateGetInputCount(HelicsFederate fed)
Definition: ValueFederateExport.cpp:1602
helics::InputObject
Definition: api_objects.h:110
helics::data_view
Definition: data_view.hpp:22
helics::ValueFederateManager::getInput
Input & getInput(std::string_view key)
Definition: ValueFederateManager.cpp:433
helicsPublicationGetInfo
const char * helicsPublicationGetInfo(HelicsPublication pub)
Definition: ValueFederateExport.cpp:1368
helicsFederateGetPublication
HelicsPublication helicsFederateGetPublication(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:333
HELICS_TIME_INVALID
const HelicsTime HELICS_TIME_INVALID
Definition: api-data.h:104
helics::ValueFederateManager::startupToInitializeStateTransition
void startupToInitializeStateTransition()
Definition: ValueFederateManager.cpp:304
helics::InputData::callback
std::function< void(Input &, Time)> callback
callback to trigger on update
Definition: ValueFederateManager.hpp:55
helicsFederateRegisterTypePublication
HelicsPublication helicsFederateRegisterTypePublication(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:98
helicsFederateClearUpdates
void helicsFederateClearUpdates(HelicsFederate fed)
Definition: ValueFederateExport.cpp:466
helicsFederatePublishJSON
void helicsFederatePublishJSON(HelicsFederate fed, const char *json, HelicsError *err)
Definition: ValueFederateExport.cpp:313
helics::DataType
DataType
Definition: helicsTypes.hpp:273
helics::fileops::JsonBuilder::addElement
void addElement(const std::string &path, const std::string &value)
Definition: JsonBuilder.cpp:100
helics::ValueFederateManager::publish
void publish(const Publication &pub, const data_view &block)
Definition: ValueFederateManager.cpp:225
helicsFederateRegisterGlobalInput
HelicsPublication helicsFederateRegisterGlobalInput(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:266
helicsPublicationPublishInteger
void helicsPublicationPublishInteger(HelicsPublication pub, int64_t val, HelicsError *err)
Definition: ValueFederateExport.cpp:510
HELICS_DATA_TYPE_RAW
@ HELICS_DATA_TYPE_RAW
Definition: helics_enums.h:88
helics::Core
Definition: core/Core.hpp:41
helics::ValueFederateManager::useJsonSerialization
bool useJsonSerialization
all outgoing data should be serialized as JSON
Definition: ValueFederateManager.hpp:206
helics::Input::getHelicsInjectionType
DataType getHelicsInjectionType() const
Definition: Inputs.hpp:396
helicsInputGetChar
char helicsInputGetChar(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:833
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helics::ValueFederateManager::getTarget
const std::string & getTarget(const Input &inp) const
Definition: ValueFederateManager.cpp:410
HelicsComplex
Definition: api-data.h:158
helicsInputSetTag
void helicsInputSetTag(HelicsInput inp, const char *tagname, const char *tagvalue, HelicsError *err)
Definition: ValueFederateExport.cpp:1418
helics::ValueFederateManager::getPublicationCount
int getPublicationCount() const
Definition: ValueFederateManager.cpp:531
helics::ValueFederateManager::getLastUpdateTime
static Time getLastUpdateTime(const Input &inp)
Definition: ValueFederateManager.cpp:239
helicsFederateGetInput
HelicsInput helicsFederateGetInput(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:387
helicsInputGetPublicationDataType
int helicsInputGetPublicationDataType(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1210
helicsFederateRegisterGlobalPublication
HelicsPublication helicsFederateRegisterGlobalPublication(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:168
helicsInputGetType
const char * helicsInputGetType(HelicsInput inp)
Definition: ValueFederateExport.cpp:1174
helics::Interface::isValid
bool isValid() const
Definition: application_api/Federate.hpp:786
helicsInputAddTarget
void helicsInputAddTarget(HelicsInput ipt, const char *target, HelicsError *err)
Definition: ValueFederateExport.cpp:678
HELICS_DATA_TYPE_TIME
@ HELICS_DATA_TYPE_TIME
Definition: helics_enums.h:84
helics::Interface::handle
InterfaceHandle handle
the id as generated by the Federate
Definition: application_api/Federate.hpp:770
HELICS_ERROR_INVALID_ARGUMENT
@ HELICS_ERROR_INVALID_ARGUMENT
Definition: helics_enums.h:236
HELICS_DATA_TYPE_CHAR
@ HELICS_DATA_TYPE_CHAR
Definition: helics_enums.h:86
helicsPublicationGetType
const char * helicsPublicationGetType(HelicsPublication pub)
Definition: ValueFederateExport.cpp:1215
helicsInputGetComplexVector
void helicsInputGetComplexVector(HelicsInput inp, double data[], int maxlen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:952
helicsInputGetStringSize
int helicsInputGetStringSize(HelicsInput inp)
Definition: ValueFederateExport.cpp:909
helicsInputGetDouble
double helicsInputGetDouble(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:800
helics::FedObject
Definition: api_objects.h:89
helics::InputData::name
std::string name
input name
Definition: ValueFederateManager.hpp:50
helicsPublicationPublishComplexVector
void helicsPublicationPublishComplexVector(HelicsPublication pub, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:613
helics::Interface::getName
const std::string & getName() const
Definition: Federate.cpp:1580
helicsPublicationPublishTime
void helicsPublicationPublishTime(HelicsPublication pub, HelicsTime val, HelicsError *err)
Definition: ValueFederateExport.cpp:552
helicsFederateGetInputByIndex
HelicsInput helicsFederateGetInputByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: ValueFederateExport.cpp:413
helicsFederateRegisterPublication
HelicsPublication helicsFederateRegisterPublication(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:118
helics::ValueFederateManager::queryUpdates
std::vector< int > queryUpdates()
Definition: ValueFederateManager.cpp:394
helics::IterationResult
IterationResult
Definition: CoreTypes.hpp:83
helicsInputSetInfo
void helicsInputSetInfo(HelicsInput inp, const char *info, HelicsError *err)
Definition: ValueFederateExport.cpp:1352
helics::ValueFederateManager::localQuery
std::string localQuery(std::string_view queryStr) const
Definition: ValueFederateManager.cpp:317
helicsPublicationGetUnits
const char * helicsPublicationGetUnits(HelicsPublication pub)
Definition: ValueFederateExport.cpp:1325
helicsInputSetDefaultDouble
void helicsInputSetDefaultDouble(HelicsInput inp, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:1074
helicsInputGetExtractionUnits
const char * helicsInputGetExtractionUnits(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1303
helicsFederateGetSubscription
HelicsInput helicsFederateGetSubscription(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:440
helicsPublicationPublishNamedPoint
void helicsPublicationPublishNamedPoint(HelicsPublication pub, const char *str, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:631
helicsFederateRegisterSubscription
HelicsInput helicsFederateRegisterSubscription(HelicsFederate fed, const char *key, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:77
helicsPublicationGetTag
const char * helicsPublicationGetTag(HelicsPublication pub, const char *tagname)
Definition: ValueFederateExport.cpp:1434
helics::ValueFederateManager
Definition: ValueFederateManager.hpp:64
helicsSubscriptionGetTarget
const char * helicsSubscriptionGetTarget(HelicsInput sub)
Definition: ValueFederateExport.cpp:1251
helics::fileops::JsonBuilder
Definition: JsonBuilder.hpp:61
helicsInputGetTag
const char * helicsInputGetTag(HelicsInput inp, const char *tagname)
Definition: ValueFederateExport.cpp:1401
helicsInputGetPublicationType
const char * helicsInputGetPublicationType(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1192
helicsFederateRegisterInput
HelicsInput helicsFederateRegisterInput(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:215
helics::InputData::units
std::string units
input units
Definition: ValueFederateManager.hpp:52
helics::publication_info::name
std::string name
publication name
Definition: ValueFederateManager.hpp:30
helics::InputData::lastUpdate
Time lastUpdate
the time the subscription was last updated
Definition: ValueFederateManager.hpp:47
helicsInputSetMinimumChange
void helicsInputSetMinimumChange(HelicsInput inp, double tolerance, HelicsError *err)
Definition: ValueFederateExport.cpp:1540
helicsPublicationSetTag
void helicsPublicationSetTag(HelicsPublication pub, const char *tagname, const char *tagvalue, HelicsError *err)
Definition: ValueFederateExport.cpp:1451
helics::Publication
Definition: Publications.hpp:25
helicsInputSetDefaultBytes
void helicsInputSetDefaultBytes(HelicsInput inp, const void *data, int dataLen, HelicsError *err)
Definition: ValueFederateExport.cpp:1020
ValueFederate.h
Functions related to value federates for the C api.
helicsInputClearUpdate
void helicsInputClearUpdate(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1577
helicsInputGetInfo
const char * helicsInputGetInfo(HelicsInput inp)
Definition: ValueFederateExport.cpp:1335
helicsPublicationPublishChar
void helicsPublicationPublishChar(HelicsPublication pub, char val, HelicsError *err)
Definition: ValueFederateExport.cpp:567
helicsPublicationPublishDouble
void helicsPublicationPublishDouble(HelicsPublication pub, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:538
helicsInputSetDefaultChar
void helicsInputSetDefaultChar(HelicsInput inp, char val, HelicsError *err)
Definition: ValueFederateExport.cpp:1094
helics::ValueFederateManager::hasUpdate
static bool hasUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:230
helics::data_view::data
const char * data() const noexcept
Definition: data_view.hpp:107
HelicsError
Definition: api-data.h:169
helicsFederateRegisterGlobalTypePublication
HelicsPublication helicsFederateRegisterGlobalTypePublication(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:148
helicsInputGetByteCount
int helicsInputGetByteCount(HelicsInput inp)
Definition: ValueFederateExport.cpp:688
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helicsPublicationGetOption
int helicsPublicationGetOption(HelicsPublication pub, int option)
Definition: ValueFederateExport.cpp:1499
HelicsPublication
void * HelicsPublication
Definition: api-data.h:31
helics::ValueFederateManager::registerInput
Input & registerInput(std::string_view key, std::string_view type, std::string_view units)
Definition: ValueFederateManager.cpp:81
helicsFederateRegisterTypeInput
HelicsInput helicsFederateRegisterTypeInput(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:196
helicsFederateRegisterGlobalTypeInput
HelicsPublication helicsFederateRegisterGlobalTypeInput(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:246
helics::Input::getHelicsType
DataType getHelicsType() const
Definition: Inputs.hpp:393
helicsFederateRegisterFromPublicationJSON
void helicsFederateRegisterFromPublicationJSON(HelicsFederate fed, const char *json, HelicsError *err)
Definition: ValueFederateExport.cpp:296
helicsPublicationSetMinimumChange
void helicsPublicationSetMinimumChange(HelicsPublication pub, double tolerance, HelicsError *err)
Definition: ValueFederateExport.cpp:1531
helicsInputGetBoolean
HelicsBool helicsInputGetBoolean(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:782
helics::data_view::size
size_t size() const noexcept
Definition: data_view.hpp:114
helics::ValueFederateManager::getPublication
Publication & getPublication(std::string_view key)
Definition: ValueFederateManager.cpp:502
helicsInputGetComplexObject
HelicsComplex helicsInputGetComplexObject(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:872
helics::ValueFederateManager::setDefaultValue
void setDefaultValue(const Input &inp, const data_view &block)
Definition: ValueFederateManager.cpp:180
helics::ValueFederateManager::getSubscription
const Input & getSubscription(std::string_view key) const
Definition: ValueFederateManager.cpp:461
helicsPublicationSetInfo
void helicsPublicationSetInfo(HelicsPublication pub, const char *info, HelicsError *err)
Definition: ValueFederateExport.cpp:1385
helicsPublicationSetOption
void helicsPublicationSetOption(HelicsPublication pub, int option, int value, HelicsError *err)
Definition: ValueFederateExport.cpp:1515
helicsPublicationPublishVector
void helicsPublicationPublishVector(HelicsPublication pub, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:595
helics::InputData
Definition: ValueFederateManager.hpp:43
helicsInputSetDefaultString
void helicsInputSetDefaultString(HelicsInput inp, const char *str, HelicsError *err)
Definition: ValueFederateExport.cpp:1040
helics::LocalFederateId
Definition: LocalFederateId.hpp:22
helics::ValueFederateManager::getValue
data_view getValue(const Input &inp)
Definition: ValueFederateManager.cpp:208
helics::typeNameStringRef
const std::string & typeNameStringRef(DataType type)
Definition: helicsTypes.cpp:58
helicsInputGetInteger
int64_t helicsInputGetInteger(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:767
helicsInputSetDefaultTime
void helicsInputSetDefaultTime(HelicsInput inp, HelicsTime val, HelicsError *err)
Definition: ValueFederateExport.cpp:1083
helicsInputGetString
void helicsInputGetString(HelicsInput inp, char *outputString, int maxStringLen, int *actualLength, HelicsError *err)
Definition: ValueFederateExport.cpp:741
helicsGetDataType
int helicsGetDataType(const char *val)
Definition: FederateExport.cpp:361
helicsPublicationPublishBytes
void helicsPublicationPublishBytes(HelicsPublication pub, const void *data, int datalen, HelicsError *err)
Definition: ValueFederateExport.cpp:482
helicsInputGetInjectionUnits
const char * helicsInputGetInjectionUnits(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1286
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helicsInputIsUpdated
HelicsBool helicsInputIsUpdated(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1549
helicsInputGetNamedPoint
void helicsInputGetNamedPoint(HelicsInput inp, char *outputString, int maxStringLen, int *actualLength, double *val, HelicsError *err)
Definition: ValueFederateExport.cpp:979
helics::Input::getDisplayName
virtual const std::string & getDisplayName() const override
Definition: Inputs.hpp:407
helicsInputGetComplex
void helicsInputGetComplex(HelicsInput inp, double *real, double *imag, HelicsError *err)
Definition: ValueFederateExport.cpp:850
helics::publication_info::id
PublicationId id
the id used as the identifier
Definition: ValueFederateManager.hpp:34
helics::publication_info::units
std::string units
publication units
Definition: ValueFederateManager.hpp:32
helicsInputGetOption
int helicsInputGetOption(HelicsInput inp, int option)
Definition: ValueFederateExport.cpp:1467
helics::PublicationObject
Definition: api_objects.h:118
helicsInputGetVector
void helicsInputGetVector(HelicsInput inp, double data[], int maxlen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:925
helics::publication_info
Definition: ValueFederateManager.hpp:29
helicsFederateGetPublicationByIndex
HelicsPublication helicsFederateGetPublicationByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: ValueFederateExport.cpp:358
helics::isBlockSizeValid
bool isBlockSizeValid(int size, const publication_info &pubI)
Definition: ValueFederateManager.cpp:220
helics::ValueFederateManager::removeTarget
void removeTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:160
helics::ValueFederateManager::initializeToExecuteStateTransition
void initializeToExecuteStateTransition(IterationResult result)
Definition: ValueFederateManager.cpp:311
helics::Input::clearUpdate
void clearUpdate()
Definition: Inputs.cpp:585
helics::ValueFederateManager::setInputNotificationCallback
void setInputNotificationCallback(std::function< void(Input &, Time)> callback)
Definition: ValueFederateManager.cpp:554
helicsInputSetDefaultVector
void helicsInputSetDefaultVector(HelicsInput inp, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:1113
helics::ValueFederateManager::disconnect
void disconnect()
Definition: ValueFederateManager.cpp:27
HelicsBool
int HelicsBool
Definition: api-data.h:112
helics::ValueFederateManager::updateTime
void updateTime(Time newTime, Time oldTime)
Definition: ValueFederateManager.cpp:262
helicsInputSetDefaultBoolean
void helicsInputSetDefaultBoolean(HelicsInput inp, HelicsBool val, HelicsError *err)
Definition: ValueFederateExport.cpp:1065
helics::ValueFederateManager::addAlias
void addAlias(const Input &inp, std::string_view shortcutName)
Definition: ValueFederateManager.cpp:111
helicsPublicationPublishBoolean
void helicsPublicationPublishBoolean(HelicsPublication pub, HelicsBool val, HelicsError *err)
Definition: ValueFederateExport.cpp:524
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:171