 |
helics
3.3.0
|
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):
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);
82 void addAlias(
const Input& inp, std::string_view shortcutName);
144 std::string
localQuery(std::string_view queryStr)
const;
187 std::function<
void(
Input&,
Time)> callback);
203 bool getUpdateFromCore(
Input& inp);
212 Time CurrentTime{-1.0};
213 Core* coreObject{
nullptr};
215 ValueFederate* fed{
nullptr};
217 atomic_guarded<std::function<void(Input&,
Time)>> allCallback;
226 void getUpdateFromCore(InterfaceHandle handle);
constexpr Time timeZero
Definition: helicsTime.hpp:31
int helicsInputGetVectorSize(HelicsInput inp)
Definition: ValueFederateExport.cpp:893
double HelicsTime
Definition: api-data.h:100
HelicsTime helicsInputLastUpdateTime(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1560
const HelicsBool HELICS_FALSE
Definition: api-data.h:115
constexpr Time initializationTime
Definition: helicsTime.hpp:40
void clearUpdates()
Definition: ValueFederateManager.cpp:541
const HelicsBool HELICS_TRUE
Definition: api-data.h:114
std::string type
publication type
Definition: ValueFederateManager.hpp:31
std::string name
the text value for the named point
Definition: helicsTypes.hpp:112
Definition: helicsTypes.hpp:110
void helicsPublicationPublishString(HelicsPublication pub, const char *str, HelicsError *err)
Definition: ValueFederateExport.cpp:496
void helicsInputGetBytes(HelicsInput inp, void *data, int maxDatalen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:707
void helicsInputSetDefaultComplexVector(HelicsInput inp, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:1133
Definition: application_api/ValueFederate.hpp:26
void helicsInputSetDefaultNamedPoint(HelicsInput inp, const char *str, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:1158
@ HELICS_DATA_TYPE_JSON
Definition: helics_enums.h:90
HelicsBool helicsPublicationIsValid(HelicsPublication pub)
Definition: ValueFederateExport.cpp:660
Definition: core-exceptions.hpp:39
@ HELICS_DATA_TYPE_ANY
Definition: helics_enums.h:95
HelicsDataTypes
Definition: helics_enums.h:65
int helicsFederateGetPublicationCount(HelicsFederate fed)
Definition: ValueFederateExport.cpp:1592
InterfaceHandle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:33
void helicsPublicationPublishComplex(HelicsPublication pub, double real, double imag, HelicsError *err)
Definition: ValueFederateExport.cpp:581
HelicsBool helicsInputIsValid(HelicsInput ipt)
Definition: ValueFederateExport.cpp:669
void helicsInputSetDefaultInteger(HelicsInput inp, int64_t val, HelicsError *err)
Definition: ValueFederateExport.cpp:1056
void helicsPublicationAddTarget(HelicsPublication pub, const char *target, HelicsError *err)
Definition: ValueFederateExport.cpp:649
void * HelicsFederate
Definition: api-data.h:65
void helicsInputSetDefaultComplex(HelicsInput inp, double real, double imag, HelicsError *err)
Definition: ValueFederateExport.cpp:1103
@ HELICS_ERROR_INVALID_OBJECT
Definition: helics_enums.h:238
X getValue(ValueFederate &fed, std::string_view key)
Definition: Subscriptions.hpp:31
std::string_view getCleanedTypeName(std::string_view typeName)
Definition: helicsTypes.cpp:264
double value
the data value for the named point
Definition: helicsTypes.hpp:113
Definition: LocalFederateId.hpp:65
int getInputCount() const
Definition: ValueFederateManager.cpp:536
int size
required size of a publication
Definition: ValueFederateManager.hpp:35
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
std::string generate()
Definition: JsonBuilder.cpp:159
void addTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:134
HelicsTime helicsInputGetTime(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:815
void * HelicsInput
Definition: api-data.h:26
@ HELICS_DATA_TYPE_STRING
Definition: helics_enums.h:68
static void clearUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:546
int helicsFederateGetInputCount(HelicsFederate fed)
Definition: ValueFederateExport.cpp:1602
Definition: data_view.hpp:22
Input & getInput(std::string_view key)
Definition: ValueFederateManager.cpp:433
HelicsPublication helicsFederateGetPublication(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:333
const HelicsTime HELICS_TIME_INVALID
Definition: api-data.h:104
void startupToInitializeStateTransition()
Definition: ValueFederateManager.cpp:304
HelicsPublication helicsFederateRegisterTypePublication(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:98
void helicsFederateClearUpdates(HelicsFederate fed)
Definition: ValueFederateExport.cpp:466
void helicsFederatePublishJSON(HelicsFederate fed, const char *json, HelicsError *err)
Definition: ValueFederateExport.cpp:313
DataType
Definition: helicsTypes.hpp:273
void addElement(const std::string &path, const std::string &value)
Definition: JsonBuilder.cpp:100
void publish(const Publication &pub, const data_view &block)
Definition: ValueFederateManager.cpp:225
HelicsPublication helicsFederateRegisterGlobalInput(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:266
void helicsPublicationPublishInteger(HelicsPublication pub, int64_t val, HelicsError *err)
Definition: ValueFederateExport.cpp:510
@ HELICS_DATA_TYPE_RAW
Definition: helics_enums.h:88
Definition: core/Core.hpp:41
bool useJsonSerialization
all outgoing data should be serialized as JSON
Definition: ValueFederateManager.hpp:206
char helicsInputGetChar(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:833
Definition: core-exceptions.hpp:85
const std::string & getTarget(const Input &inp) const
Definition: ValueFederateManager.cpp:410
Definition: api-data.h:158
int getPublicationCount() const
Definition: ValueFederateManager.cpp:531
static Time getLastUpdateTime(const Input &inp)
Definition: ValueFederateManager.cpp:239
HelicsInput helicsFederateGetInput(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:387
HelicsPublication helicsFederateRegisterGlobalPublication(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:168
bool isValid() const
Definition: application_api/Federate.hpp:786
void helicsInputAddTarget(HelicsInput ipt, const char *target, HelicsError *err)
Definition: ValueFederateExport.cpp:678
@ HELICS_DATA_TYPE_TIME
Definition: helics_enums.h:84
InterfaceHandle handle
the id as generated by the Federate
Definition: application_api/Federate.hpp:770
@ HELICS_ERROR_INVALID_ARGUMENT
Definition: helics_enums.h:236
@ HELICS_DATA_TYPE_CHAR
Definition: helics_enums.h:86
void helicsInputGetComplexVector(HelicsInput inp, double data[], int maxlen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:952
int helicsInputGetStringSize(HelicsInput inp)
Definition: ValueFederateExport.cpp:909
double helicsInputGetDouble(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:800
Definition: api_objects.h:89
void helicsPublicationPublishComplexVector(HelicsPublication pub, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:613
const std::string & getName() const
Definition: Federate.cpp:1580
void helicsPublicationPublishTime(HelicsPublication pub, HelicsTime val, HelicsError *err)
Definition: ValueFederateExport.cpp:552
HelicsInput helicsFederateGetInputByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: ValueFederateExport.cpp:413
HelicsPublication helicsFederateRegisterPublication(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:118
std::vector< int > queryUpdates()
Definition: ValueFederateManager.cpp:394
IterationResult
Definition: CoreTypes.hpp:83
std::string localQuery(std::string_view queryStr) const
Definition: ValueFederateManager.cpp:317
void helicsInputSetDefaultDouble(HelicsInput inp, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:1074
HelicsInput helicsFederateGetSubscription(HelicsFederate fed, const char *key, HelicsError *err)
Definition: ValueFederateExport.cpp:440
void helicsPublicationPublishNamedPoint(HelicsPublication pub, const char *str, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:631
HelicsInput helicsFederateRegisterSubscription(HelicsFederate fed, const char *key, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:77
Definition: ValueFederateManager.hpp:64
Definition: JsonBuilder.hpp:61
HelicsInput helicsFederateRegisterInput(HelicsFederate fed, const char *key, HelicsDataTypes type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:215
std::string name
publication name
Definition: ValueFederateManager.hpp:30
Definition: Publications.hpp:25
void helicsInputSetDefaultBytes(HelicsInput inp, const void *data, int dataLen, HelicsError *err)
Definition: ValueFederateExport.cpp:1020
Functions related to value federates for the C api.
void helicsInputClearUpdate(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1577
void helicsPublicationPublishChar(HelicsPublication pub, char val, HelicsError *err)
Definition: ValueFederateExport.cpp:567
void helicsPublicationPublishDouble(HelicsPublication pub, double val, HelicsError *err)
Definition: ValueFederateExport.cpp:538
void helicsInputSetDefaultChar(HelicsInput inp, char val, HelicsError *err)
Definition: ValueFederateExport.cpp:1094
static bool hasUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:230
const char * data() const noexcept
Definition: data_view.hpp:107
Definition: api-data.h:169
HelicsPublication helicsFederateRegisterGlobalTypePublication(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:148
int helicsInputGetByteCount(HelicsInput inp)
Definition: ValueFederateExport.cpp:688
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
void * HelicsPublication
Definition: api-data.h:31
Input & registerInput(std::string_view key, std::string_view type, std::string_view units)
Definition: ValueFederateManager.cpp:81
HelicsInput helicsFederateRegisterTypeInput(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:196
HelicsPublication helicsFederateRegisterGlobalTypeInput(HelicsFederate fed, const char *key, const char *type, const char *units, HelicsError *err)
Definition: ValueFederateExport.cpp:246
void helicsFederateRegisterFromPublicationJSON(HelicsFederate fed, const char *json, HelicsError *err)
Definition: ValueFederateExport.cpp:296
HelicsBool helicsInputGetBoolean(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:782
size_t size() const noexcept
Definition: data_view.hpp:114
Publication & getPublication(std::string_view key)
Definition: ValueFederateManager.cpp:502
HelicsComplex helicsInputGetComplexObject(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:872
void setDefaultValue(const Input &inp, const data_view &block)
Definition: ValueFederateManager.cpp:180
const Input & getSubscription(std::string_view key) const
Definition: ValueFederateManager.cpp:461
void helicsPublicationPublishVector(HelicsPublication pub, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:595
void helicsInputSetDefaultString(HelicsInput inp, const char *str, HelicsError *err)
Definition: ValueFederateExport.cpp:1040
Definition: LocalFederateId.hpp:22
data_view getValue(const Input &inp)
Definition: ValueFederateManager.cpp:208
const std::string & typeNameStringRef(DataType type)
Definition: helicsTypes.cpp:58
int64_t helicsInputGetInteger(HelicsInput inp, HelicsError *err)
Definition: ValueFederateExport.cpp:767
void helicsInputSetDefaultTime(HelicsInput inp, HelicsTime val, HelicsError *err)
Definition: ValueFederateExport.cpp:1083
void helicsInputGetString(HelicsInput inp, char *outputString, int maxStringLen, int *actualLength, HelicsError *err)
Definition: ValueFederateExport.cpp:741
int helicsGetDataType(const char *val)
Definition: FederateExport.cpp:361
void helicsPublicationPublishBytes(HelicsPublication pub, const void *data, int datalen, HelicsError *err)
Definition: ValueFederateExport.cpp:482
Definition: application_api/Federate.hpp:28
HelicsBool helicsInputIsUpdated(HelicsInput ipt)
Definition: ValueFederateExport.cpp:1549
void helicsInputGetNamedPoint(HelicsInput inp, char *outputString, int maxStringLen, int *actualLength, double *val, HelicsError *err)
Definition: ValueFederateExport.cpp:979
void helicsInputGetComplex(HelicsInput inp, double *real, double *imag, HelicsError *err)
Definition: ValueFederateExport.cpp:850
PublicationId id
the id used as the identifier
Definition: ValueFederateManager.hpp:34
std::string units
publication units
Definition: ValueFederateManager.hpp:32
Definition: api_objects.h:118
void helicsInputGetVector(HelicsInput inp, double data[], int maxlen, int *actualSize, HelicsError *err)
Definition: ValueFederateExport.cpp:925
Definition: ValueFederateManager.hpp:29
HelicsPublication helicsFederateGetPublicationByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: ValueFederateExport.cpp:358
bool isBlockSizeValid(int size, const publication_info &pubI)
Definition: ValueFederateManager.cpp:220
void removeTarget(const Publication &pub, std::string_view target)
Definition: ValueFederateManager.cpp:160
void initializeToExecuteStateTransition(IterationResult result)
Definition: ValueFederateManager.cpp:311
void setInputNotificationCallback(std::function< void(Input &, Time)> callback)
Definition: ValueFederateManager.cpp:554
void helicsInputSetDefaultVector(HelicsInput inp, const double *vectorInput, int vectorLength, HelicsError *err)
Definition: ValueFederateExport.cpp:1113
void disconnect()
Definition: ValueFederateManager.cpp:27
int HelicsBool
Definition: api-data.h:112
void updateTime(Time newTime, Time oldTime)
Definition: ValueFederateManager.cpp:262
void helicsInputSetDefaultBoolean(HelicsInput inp, HelicsBool val, HelicsError *err)
Definition: ValueFederateExport.cpp:1065
void addAlias(const Input &inp, std::string_view shortcutName)
Definition: ValueFederateManager.cpp:111
void helicsPublicationPublishBoolean(HelicsPublication pub, HelicsBool val, HelicsError *err)
Definition: ValueFederateExport.cpp:524
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:171