 |
helics
2.8.1
|
9 #include "../common/GuardedTypes.hpp"
10 #include "../core/federate_id.hpp"
12 #include "Publications.hpp"
13 #include "data_view.hpp"
14 #include "gmlc/containers/DualMappedVector.hpp"
36 publication_info(
const std::string& n_name,
37 const std::string& n_type,
38 const std::string& n_units):
59 input_info(
const std::string& n_name,
const std::string& n_type,
const std::string& n_units):
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);
84 void addAlias(
const Input& inp,
const std::string& shortcutName);
146 std::string
localQuery(
const std::string& queryStr)
const;
189 std::function<
void(
Input&,
Time)> callback);
212 DualMappedVector<Input, std::string, interface_handle, reference_stability::stable>>
217 reference_stability::stable>>
220 Core* coreObject{
nullptr};
222 ValueFederate* fed{
nullptr};
223 atomic_guarded<std::function<void(Input&,
Time)>>
232 void getUpdateFromCore(interface_handle handle);
constexpr Time timeZero
Definition: helics-time.hpp:31
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
@ helics_data_type_raw
Definition: helics_enums.h:71
constexpr Time initializationTime
Definition: helics-time.hpp:38
void clearUpdates()
Definition: ValueFederateManager.cpp:529
std::string type
publication type
Definition: ValueFederateManager.hpp:30
std::string name
the text value for the named point
Definition: helicsTypes.hpp:113
void helicsInputGetRawValue(helics_input inp, void *data, int maxDatalen, int *actualSize, helics_error *err)
Definition: ValueFederateExport.cpp:690
void helicsInputSetDefaultBoolean(helics_input inp, helics_bool val, helics_error *err)
Definition: ValueFederateExport.cpp:1021
Definition: helicsTypes.hpp:111
void helicsInputGetVector(helics_input inp, double data[], int maxlen, int *actualSize, helics_error *err)
Definition: ValueFederateExport.cpp:908
Definition: application_api/ValueFederate.hpp:25
helics_input helicsFederateRegisterSubscription(helics_federate fed, const char *key, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:77
helics_bool helicsInputGetBoolean(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:765
helics_publication helicsFederateGetPublication(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:334
Definition: core-exceptions.hpp:39
@ helics_error_invalid_object
Definition: helics_enums.h:206
void helicsPublicationPublishTime(helics_publication pub, helics_time val, helics_error *err)
Definition: ValueFederateExport.cpp:553
void helicsInputGetString(helics_input inp, char *outputString, int maxStringLen, int *actualLength, helics_error *err)
Definition: ValueFederateExport.cpp:724
Definition: federate_id.hpp:22
iteration_result
Definition: core-types.hpp:81
helics_publication helicsFederateRegisterGlobalTypeInput(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:248
int helicsFederateGetInputCount(helics_federate fed)
Definition: ValueFederateExport.cpp:1450
int helicsInputGetRawValueSize(helics_input inp)
Definition: ValueFederateExport.cpp:671
void * helics_publication
Definition: api-data.h:31
double value
the data value for the named point
Definition: helicsTypes.hpp:114
int getInputCount() const
Definition: ValueFederateManager.cpp:524
int size
required size of a publication
Definition: ValueFederateManager.hpp:34
void helicsInputGetNamedPoint(helics_input inp, char *outputString, int maxStringLen, int *actualLength, double *val, helics_error *err)
Definition: ValueFederateExport.cpp:935
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
double helics_time
Definition: api-data.h:81
void helicsInputSetDefaultTime(helics_input inp, helics_time val, helics_error *err)
Definition: ValueFederateExport.cpp:1039
helics_publication helicsFederateGetPublicationByIndex(helics_federate fed, int index, helics_error *err)
Definition: ValueFederateExport.cpp:359
helics_complex helicsInputGetComplexObject(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:855
std::string localQuery(const std::string &queryStr) const
Definition: ValueFederateManager.cpp:305
interface_handle coreID
Handle from the core.
Definition: ValueFederateManager.hpp:32
void helicsPublicationPublishComplex(helics_publication pub, double real, double imag, helics_error *err)
Definition: ValueFederateExport.cpp:582
static void clearUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:534
const helics_bool helics_false
Definition: api-data.h:95
helics_input helicsFederateGetSubscription(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:441
void helicsInputSetDefaultChar(helics_input inp, char val, helics_error *err)
Definition: ValueFederateExport.cpp:1050
Definition: data_view.hpp:22
publication_id_t id
the id used as the identifier
Definition: ValueFederateManager.hpp:33
const helics_bool helics_true
Definition: api-data.h:94
helics_publication helicsFederateRegisterGlobalTypePublication(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:144
void helicsPublicationPublishChar(helics_publication pub, char val, helics_error *err)
Definition: ValueFederateExport.cpp:568
void startupToInitializeStateTransition()
Definition: ValueFederateManager.cpp:292
void removeTarget(const Publication &pub, const std::string &target)
Definition: ValueFederateManager.cpp:152
helics_publication helicsFederateRegisterGlobalPublication(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:167
void publish(const Publication &pub, const data_view &block)
Definition: ValueFederateManager.cpp:217
helics_time helicsInputLastUpdateTime(helics_input ipt)
Definition: ValueFederateExport.cpp:1408
void helicsInputAddTarget(helics_input ipt, const char *target, helics_error *err)
Definition: ValueFederateExport.cpp:661
@ helics_data_type_any
Definition: helics_enums.h:77
helics_input helicsFederateRegisterInput(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:218
Definition: core/Core.hpp:42
bool useJsonSerialization
all outgoing data should be serialized as JSON
Definition: ValueFederateManager.hpp:207
void addAlias(const Input &inp, const std::string &shortcutName)
Definition: ValueFederateManager.cpp:106
void helicsPublicationPublishVector(helics_publication pub, const double *vectorInput, int vectorLength, helics_error *err)
Definition: ValueFederateExport.cpp:596
Definition: core-exceptions.hpp:85
helics_publication helicsFederateRegisterTypePublication(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:98
const std::string & getTarget(const Input &inp) const
Definition: ValueFederateManager.cpp:398
const std::string & typeNameStringRef(data_type type)
Definition: helicsTypes.cpp:27
helics_time helicsInputGetTime(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:798
const Input & getSubscription(const std::string &key) const
Definition: ValueFederateManager.cpp:449
Definition: api-data.h:137
@ helics_error_invalid_argument
Definition: helics_enums.h:204
int getPublicationCount() const
Definition: ValueFederateManager.cpp:519
static Time getLastUpdateTime(const Input &inp)
Definition: ValueFederateManager.cpp:231
Input & registerInput(const std::string &key, std::string type, const std::string &units)
Definition: ValueFederateManager.cpp:77
void helicsPublicationPublishNamedPoint(helics_publication pub, const char *str, double val, helics_error *err)
Definition: ValueFederateExport.cpp:614
void helicsPublicationPublishInteger(helics_publication pub, int64_t val, helics_error *err)
Definition: ValueFederateExport.cpp:511
const helics_time helics_time_invalid
Definition: api-data.h:85
bool isValid() const
Definition: Publications.hpp:184
void helicsPublicationPublishBoolean(helics_publication pub, helics_bool val, helics_error *err)
Definition: ValueFederateExport.cpp:525
int helicsInputGetVectorSize(helics_input inp)
Definition: ValueFederateExport.cpp:876
Definition: api_objects.h:82
helics_publication helicsFederateRegisterPublication(helics_federate fed, const char *key, helics_data_type type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:118
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
std::vector< int > queryUpdates()
Definition: ValueFederateManager.cpp:382
void helicsPublicationPublishDouble(helics_publication pub, double val, helics_error *err)
Definition: ValueFederateExport.cpp:539
void addElement(const std::string &path, const std::string &value)
Definition: JsonBuilder.cpp:100
void initializeToExecuteStateTransition(iteration_result result)
Definition: ValueFederateManager.cpp:299
Definition: federate_id.hpp:65
void helicsInputClearUpdate(helics_input ipt)
Definition: ValueFederateExport.cpp:1425
Definition: ValueFederateManager.hpp:66
helics_data_type
Definition: helics_enums.h:51
void helicsInputSetDefaultNamedPoint(helics_input inp, const char *str, double val, helics_error *err)
Definition: ValueFederateExport.cpp:1089
void helicsInputSetDefaultRaw(helics_input inp, const void *data, int dataLen, helics_error *err)
Definition: ValueFederateExport.cpp:976
std::string name
publication name
Definition: ValueFederateManager.hpp:29
void helicsInputSetDefaultComplex(helics_input inp, double real, double imag, helics_error *err)
Definition: ValueFederateExport.cpp:1059
void addTarget(const Publication &pub, const std::string &target)
Definition: ValueFederateManager.cpp:127
Definition: JsonBuilder.hpp:61
helics_bool helicsPublicationIsValid(helics_publication pub)
Definition: ValueFederateExport.cpp:643
Definition: api-data.h:166
Definition: Publications.hpp:23
void helicsPublicationPublishString(helics_publication pub, const char *str, helics_error *err)
Definition: ValueFederateExport.cpp:497
int64_t helicsInputGetInteger(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:750
Functions related to value federates for the C api.
void helicsInputGetComplex(helics_input inp, double *real, double *imag, helics_error *err)
Definition: ValueFederateExport.cpp:833
@ helics_data_type_string
Definition: helics_enums.h:53
int helicsFederateGetPublicationCount(helics_federate fed)
Definition: ValueFederateExport.cpp:1440
static bool hasUpdate(const Input &inp)
Definition: ValueFederateManager.cpp:222
const char * data() const noexcept
Definition: data_view.hpp:105
void helicsInputSetDefaultString(helics_input inp, const char *str, helics_error *err)
Definition: ValueFederateExport.cpp:996
interface_handle handle
the internal id of the publication
Definition: Publications.hpp:26
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
data_type
Definition: helicsTypes.hpp:275
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
Definition: helics_enums.h:69
size_t size() const noexcept
Definition: data_view.hpp:107
char helicsInputGetChar(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:816
void setDefaultValue(const Input &inp, const data_view &block)
Definition: ValueFederateManager.cpp:172
void helicsFederateClearUpdates(helics_federate fed)
Definition: ValueFederateExport.cpp:467
void helicsPublicationPublishRaw(helics_publication pub, const void *data, int datalen, helics_error *err)
Definition: ValueFederateExport.cpp:483
void helicsPublicationAddTarget(helics_publication pub, const char *target, helics_error *err)
Definition: ValueFederateExport.cpp:632
Input & getInput(const std::string &key)
Definition: ValueFederateManager.cpp:421
X getValue(ValueFederate &fed, const std::string &key)
Definition: Subscriptions.hpp:67
data_view getValue(const Input &inp)
Definition: ValueFederateManager.cpp:200
double helicsInputGetDouble(helics_input inp, helics_error *err)
Definition: ValueFederateExport.cpp:783
void helicsInputSetDefaultInteger(helics_input inp, int64_t val, helics_error *err)
Definition: ValueFederateExport.cpp:1012
int helicsInputGetStringSize(helics_input inp)
Definition: ValueFederateExport.cpp:892
Definition: application_api/Federate.hpp:26
helics_input helicsFederateRegisterTypeInput(helics_federate fed, const char *key, const char *type, const char *units, helics_error *err)
Definition: ValueFederateExport.cpp:199
void helicsFederatePublishJSON(helics_federate fed, const char *json, helics_error *err)
Definition: ValueFederateExport.cpp:314
void helicsFederateRegisterFromPublicationJSON(helics_federate fed, const char *json, helics_error *err)
Definition: ValueFederateExport.cpp:297
void * helics_input
Definition: api-data.h:26
std::string units
publication units
Definition: ValueFederateManager.hpp:31
Definition: api_objects.h:109
Definition: ValueFederateManager.hpp:28
helics_bool helicsInputIsUpdated(helics_input ipt)
Definition: ValueFederateExport.cpp:1397
int helics_bool
Definition: api-data.h:92
void helicsInputSetDefaultVector(helics_input inp, const double *vectorInput, int vectorLength, helics_error *err)
Definition: ValueFederateExport.cpp:1069
std::string generate()
Definition: JsonBuilder.cpp:159
bool isBlockSizeValid(int size, const publication_info &pubI)
Definition: ValueFederateManager.cpp:212
helics_bool helicsInputIsValid(helics_input ipt)
Definition: ValueFederateExport.cpp:652
helics_input helicsFederateGetInput(helics_federate fed, const char *key, helics_error *err)
Definition: ValueFederateExport.cpp:388
helics_input helicsFederateGetInputByIndex(helics_federate fed, int index, helics_error *err)
Definition: ValueFederateExport.cpp:414
void setInputNotificationCallback(std::function< void(Input &, Time)> callback)
Definition: ValueFederateManager.cpp:542
Publication & getPublication(const std::string &key)
Definition: ValueFederateManager.cpp:490
void helicsInputSetDefaultDouble(helics_input inp, double val, helics_error *err)
Definition: ValueFederateExport.cpp:1030
void disconnect()
Definition: ValueFederateManager.cpp:23
void updateTime(Time newTime, Time oldTime)
Definition: ValueFederateManager.cpp:240
void * helics_federate
Definition: api-data.h:56
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:249