 |
helics
2.8.1
|
9 #include "../core/core-data.hpp"
10 #include "Federate.hpp"
12 #include "data_view.hpp"
23 class ValueFederateManager;
44 const std::shared_ptr<Core>& core,
67 ValueFederate(
const std::string& fedName,
const std::string& configString);
98 Publication& registerPublication(
const std::string& key,
99 const std::string& type,
100 const std::string& units = std::string());
109 const std::string& units = std::string())
121 Publication& registerGlobalPublication(
const std::string& key,
122 const std::string& type,
123 const std::string& units = std::string());
132 const std::string& units = std::string())
148 const std::string& units = std::string())
150 return registerGlobalPublication<X>(key +
'_' + std::to_string(index1), units);
165 const std::string& units = std::string())
167 return registerGlobalPublication<X>(key +
'_' + std::to_string(index1) +
'_' +
168 std::to_string(index2),
183 const std::string& units = std::string())
185 return registerGlobalPublication<X>(key +
'_' + std::to_string(index1), units);
200 const std::string& units = std::string())
202 return registerGlobalPublication<X>(key +
'_' + std::to_string(index1) +
'_' +
203 std::to_string(index2),
213 Input& registerInput(
const std::string& key,
214 const std::string& type,
215 const std::string& units = std::string());
224 Input& registerGlobalInput(
const std::string& key,
225 const std::string& type,
226 const std::string& units = std::string());
252 const std::string& units = std::string())
254 return registerGlobalInput<X>(key +
'_' + std::to_string(index1), units);
270 const std::string& units = std::string())
272 return registerGlobalInput<X>(key +
'_' + std::to_string(index1) +
'_' +
273 std::to_string(index2),
287 const std::string& units = std::string())
289 return registerGlobalInput<X>(key +
'_' + std::to_string(index1), units);
305 const std::string& units = std::string())
307 return registerGlobalInput<X>(key +
'_' + std::to_string(index1) +
'_' +
308 std::to_string(index2),
316 Input& registerSubscription(
const std::string& target,
317 const std::string& units = std::string());
327 const std::string& units = std::string())
329 return registerSubscription(target +
'_' + std::to_string(index1), units);
342 const std::string& units = std::string())
344 return registerSubscription(target +
'_' + std::to_string(index1) +
'_' +
345 std::to_string(index2),
357 const std::string& units = std::string())
359 return registerSubscription(target +
'_' + std::to_string(index1), units);
372 const std::string& units = std::string())
374 return registerSubscription(target +
'_' + std::to_string(index1) +
'_' +
375 std::to_string(index2),
384 void addAlias(
const Input& inp,
const std::string& shortcutName);
392 void addAlias(
const Publication& pub,
const std::string& shortcutName);
398 virtual void setFlagOption(
int flag,
bool flagValue =
true)
override;
414 virtual void registerInterfaces(
const std::string& configString)
override;
422 void registerValueInterfaces(
const std::string& configString);
426 void registerValueInterfacesJson(
const std::string& jsonString);
428 void registerValueInterfacesToml(
const std::string& tomlString);
439 static double getDouble(
Input& inp);
441 static const std::string& getString(
Input& inp);
477 void registerFromPublicationJSON(
const std::string& jsonString);
482 void publishJSON(
const std::string& jsonString);
488 void addTarget(
const Publication& pub,
const std::string& target);
493 void addTarget(
const Input& inp,
const std::string& target);
498 void removeTarget(
const Publication& pub,
const std::string& target);
503 void removeTarget(
const Input& inp,
const std::string& target);
512 template<
class iType>
515 addTarget(iObject, target +
'_' + std::to_string(index1));
525 template<
class iType>
526 void addIndexedTarget(
const iType& iObject,
const std::string& target,
int index1,
int index2)
528 addTarget(iObject, target +
'_' + std::to_string(index1) +
'_' + std::to_string(index2));
533 bool isUpdated(
const Input& inp)
const;
535 Time getLastUpdateTime(
const Input& inp)
const;
537 virtual void disconnect()
override;
543 void clearUpdate(
const Input& inp);
546 virtual void updateTime(
Time newTime,
Time oldTime)
override;
547 virtual void startupToInitializeStateTransition()
override;
548 virtual void initializeToExecuteStateTransition(
iteration_result result)
override;
549 virtual std::string localQuery(
const std::string& queryStr)
const override;
555 std::vector<int> queryUpdates();
559 const std::string& getTarget(
const Input& inp)
const;
563 const Input& getInput(
const std::string& key)
const;
567 Input& getInput(
const std::string& key);
571 const Input& getInput(
int index)
const;
575 Input& getInput(
int index);
579 const Input& getInput(
const std::string& key,
int index1)
const;
583 const Input& getInput(
const std::string& key,
int index1,
int index2)
const;
588 const Input& getSubscription(
const std::string& target)
const;
594 Input& getSubscription(
const std::string& target);
600 Publication& getPublication(
const std::string& key);
605 const Publication& getPublication(
const std::string& key)
const;
614 const Publication& getPublication(
int index)
const;
620 const Publication& getPublication(
const std::string& key,
int index1)
const;
626 const Publication& getPublication(
const std::string& key,
int index1,
int index2)
const;
632 void setInputNotificationCallback(std::function<
void(
Input&,
Time)> callback);
637 void setInputNotificationCallback(
Input& inp, std::function<
void(
Input&,
Time)> callback);
640 int getPublicationCount()
const;
642 int getInputCount()
const;
646 std::unique_ptr<ValueFederateManager> vfManager;
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
Definition: application_api/ValueFederate.hpp:25
void addIndexedTarget(const iType &iObject, const std::string &target, int index1, int index2)
Definition: application_api/ValueFederate.hpp:526
Input & registerInputIndexed(const std::string &key, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:285
Input & registerInput(const std::string &key, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:230
Input & registerSubscriptionIndexed(const std::string &target, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:369
Input & registerIndexedInput(const std::string &key, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:267
Input & registerSubscriptionIndexed(const std::string &target, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:355
iteration_result
Definition: core-types.hpp:81
Definition: ValueConverter.hpp:26
Publication & registerPublicationIndexed(const std::string &key, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:181
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
Definition: data_view.hpp:22
Publication & registerGlobalPublication(const std::string &key, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:131
Input & registerIndexedSubscription(const std::string &target, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:325
Definition: application_api/CoreApp.hpp:25
Input & registerGlobalInput(const std::string &key, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:237
Publication & registerPublication(const std::string &key, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:108
Definition: FederateInfo.hpp:20
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
Publication & registerPublicationIndexed(const std::string &key, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:197
Publication & registerIndexedPublication(const std::string &key, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:162
Input & registerIndexedInput(const std::string &key, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:250
Definition: Publications.hpp:23
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
Input & registerInputIndexed(const std::string &key, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:302
Input & registerIndexedSubscription(const std::string &target, int index1, int index2, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:339
Definition: application_api/Federate.hpp:44
void publish(ValueFederate &fed, const std::string &pubKey, Us... pargs)
Definition: Publications.hpp:491
Publication & registerIndexedPublication(const std::string &key, int index1, const std::string &units=std::string())
Definition: application_api/ValueFederate.hpp:146
void addIndexedTarget(const iType &iObject, const std::string &target, int index1)
Definition: application_api/ValueFederate.hpp:513
void publishRaw(const Publication &pub, const char *data, size_t data_size)
Definition: application_api/ValueFederate.hpp:455