 |
helics
3.0.1
|
7 #ifndef HELICS_CPP98_FEDERATE_HPP_
8 #define HELICS_CPP98_FEDERATE_HPP_
13 #include "helics/helics.h"
14 #include "helicsExceptions.hpp"
20 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
21 # include <functional>
58 #ifdef HELICS_HAS_RVALUE_REFS
63 fedInfo.fi = HELICS_NULL_POINTER;
70 fedInfo.fi = HELICS_NULL_POINTER;
132 HELICS_NULL_POINTER);
151 HELICS_NULL_POINTER);
153 void sendCommand(
const std::string& target,
const std::string& cmd)
160 const char* getCommandSource()
171 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
174 inline void helicCppQueryCallbackExecutor(
const char* query,
179 auto cback =
reinterpret_cast<std::function<std::string(
const std::string&)
>*>(userData);
180 std::string val(query, stringSize);
181 std::string result = (*cback)(val);
210 #ifdef HELICS_HAS_RVALUE_REFS
215 fedObj.fed = HELICS_NULL_POINTER;
222 fedObj.fed = HELICS_NULL_POINTER;
229 if (
fed != HELICS_NULL_POINTER) {
232 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
233 if (callbackBuffer !=
nullptr) {
235 reinterpret_cast<std::function<std::string(
const std::string&)
>*>(callbackBuffer);
482 std::string
query(
const std::string& target,
483 const std::string& queryStr,
509 std::string
query(
const std::string& queryStr,
522 void setQueryCallback(
530 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
531 void setQueryCallback(std::function<std::string(
const std::string&)> callback)
534 callbackBuffer =
new std::function<std::string(const std::string&)>(std::move(callback));
536 details::helicCppQueryCallbackExecutor,
569 const std::string& filterName = std::string())
584 deliveryEndpoint.c_str(),
607 void setGlobal(
const std::string& valueName,
const std::string& value)
617 void setTag(
const std::string& tag,
const std::string& value)
627 const char*
getTag(
const std::string& tag)
const
645 void localError(
int errorCode,
const std::string& errorString)
692 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
694 void* callbackBuffer{
nullptr};
HelicsFilter helicsFederateGetFilterByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: MessageFiltersExport.cpp:224
void helicsFederateSetTag(HelicsFederate fed, const char *tagName, const char *value, HelicsError *err)
Definition: FederateExport.cpp:1190
void setCoreType(int coretype)
Definition: cpp98/Federate.hpp:105
void finalizeComplete()
Definition: cpp98/Federate.hpp:397
void helicsFederateSetGlobal(HelicsFederate fed, const char *valueName, const char *value, HelicsError *err)
Definition: FederateExport.cpp:1169
double HelicsTime
Definition: api-data.h:90
HelicsFederate getObject() const
Definition: cpp98/Federate.hpp:687
void logMessage(int level, const std::string &message)
Definition: cpp98/Federate.hpp:680
const HelicsBool HELICS_FALSE
Definition: api-data.h:105
void setBrokerInit(const std::string &brokerInit)
Set a string for the broker initialization in command line argument format.
Definition: cpp98/Federate.hpp:91
void enterInitializingModeAsync()
Definition: cpp98/Federate.hpp:323
void helicsFederateSetFlagOption(HelicsFederate fed, int flag, HelicsBool flagValue, HelicsError *err)
Definition: FederateExport.cpp:1063
HelicsFilter helicsFederateRegisterGlobalCloningFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:143
void finalize()
Definition: cpp98/Federate.hpp:392
HelicsTime helicsFederateGetCurrentTime(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1158
Definition: cpp98/Federate.hpp:188
bool exec_async_iterate
indicator that the federate is in an async operation
Definition: cpp98/Federate.hpp:691
const HelicsBool HELICS_TRUE
Definition: api-data.h:104
void helicsFederateInfoSetBroker(HelicsFederateInfo fi, const char *broker, HelicsError *err)
Definition: FederateExport.cpp:267
void logErrorMessage(const std::string &message)
Definition: cpp98/Federate.hpp:660
const char * getTag(const std::string &tag) const
Definition: cpp98/Federate.hpp:627
Filter registerGlobalFilter(HelicsFilterTypes type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:568
HelicsTime helicsFederateRequestTimeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:953
HelicsTime helicsFederateRequestTimeAdvance(HelicsFederate fed, HelicsTime timeDelta, HelicsError *err)
Definition: FederateExport.cpp:878
void logInfoMessage(const std::string &message)
Definition: cpp98/Federate.hpp:670
void helicsFederateEnterExecutingModeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:805
void enterExecutingModeAsync(HelicsIterationRequest iterate=HELICS_ITERATION_REQUEST_NO_ITERATION)
Definition: cpp98/Federate.hpp:363
void helicsQuerySetOrdering(HelicsQuery query, int32_t mode, HelicsError *err)
Definition: helicsExport.cpp:1090
void requestTimeIterativeAsync(HelicsTime time, HelicsIterationRequest iterate)
Definition: cpp98/Federate.hpp:444
void finalizeAsync()
Definition: cpp98/Federate.hpp:395
Definition: Filter.hpp:106
void localError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:645
HelicsTime grantedTime
the time of the granted step
Definition: cpp98/Federate.hpp:189
HelicsTime getTimeProperty(int tProperty) const
Definition: cpp98/Federate.hpp:282
HelicsFederateInfo getInfo()
Definition: cpp98/Federate.hpp:165
HelicsIterationResult helicsFederateEnterExecutingModeIterative(HelicsFederate fed, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:789
void helicsFederateAddDependency(HelicsFederate fed, const char *fedName, HelicsError *err)
Definition: FederateExport.cpp:1233
void helicsFederateEnterExecutingMode(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:744
void helicsFederateEnterExecutingModeIterativeAsync(HelicsFederate fed, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:819
void helicsFederateLocalError(HelicsFederate fed, int errorCode, const char *errorString, HelicsError *err)
Definition: FederateExport.cpp:613
void * HelicsFederate
Definition: api-data.h:60
HelicsBool helicsFederateIsAsyncOperationCompleted(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:721
void helicsQueryBufferFill(HelicsQueryBuffer buffer, const char *str, int strSize, HelicsError *err)
Definition: helicsCallbacks.cpp:125
void helicsFederateRegisterInterfaces(HelicsFederate fed, const char *file, HelicsError *err)
Definition: FederateExport.cpp:579
bool isAsyncOperationCompleted() const
Definition: cpp98/Federate.hpp:331
HelicsIterationTime requestTimeIterativeComplete()
Definition: cpp98/Federate.hpp:459
void helicsFederateFinalize(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:629
void helicsFederateSendCommand(HelicsFederate fed, const char *target, const char *command, HelicsError *err)
Definition: FederateExport.cpp:1308
void * HelicsQueryBuffer
Definition: api-data.h:78
Definition: cpp98/Federate.hpp:194
void helicsFederateSetSeparator(HelicsFederate fed, char separator, HelicsError *err)
Definition: FederateExport.cpp:1149
void setBrokerKey(const std::string &brokerkey)
Definition: cpp98/Federate.hpp:119
const char * helicsQueryExecute(HelicsQuery query, HelicsFederate fed, HelicsError *err)
Definition: helicsExport.cpp:953
void setCoreType(const std::string &coretype)
Definition: cpp98/Federate.hpp:98
HelicsFederate helicsFederateClone(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:541
HelicsFederateState getCurrentMode() const
Definition: cpp98/Federate.hpp:311
void helicsFederateEnterExecutingModeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:833
Definition: cpp98/Federate.hpp:27
void helicsQueryFree(HelicsQuery query)
Definition: helicsExport.cpp:1099
void helicsFederateGlobalError(HelicsFederate fed, int errorCode, const char *errorString, HelicsError *err)
Definition: FederateExport.cpp:597
void helicsFederateLogWarningMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1284
HelicsFederateState helicsFederateGetState(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1021
const char * helicsFederateGetCommand(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1317
void setProperty(int intProperty, int value)
Definition: cpp98/Federate.hpp:267
HelicsTime helicsFederateRequestTime(HelicsFederate fed, HelicsTime requestTime, HelicsError *err)
Definition: FederateExport.cpp:862
void globalError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:654
void setCoreName(const std::string &corename)
Definition: cpp98/Federate.hpp:78
void helicsFederateSetIntegerProperty(HelicsFederate fed, int intProperty, int propertyVal, HelicsError *err)
Definition: FederateExport.cpp:1079
HelicsTime requestTimeComplete()
Definition: cpp98/Federate.hpp:451
HelicsIterationResult enterExecutingMode(HelicsIterationRequest iterate=HELICS_ITERATION_REQUEST_NO_ITERATION)
Definition: cpp98/Federate.hpp:348
void helicsFederateSetQueryCallback(HelicsFederate fed, void(*queryAnswer)(const char *query, int querySize, HelicsQueryBuffer buffer, void *userdata), void *userdata, HelicsError *err)
Definition: helicsCallbacks.cpp:98
~FederateInfo()
Definition: cpp98/Federate.hpp:75
FederateInfo(int coretype)
Definition: cpp98/Federate.hpp:40
void helicsFederateSetTimeProperty(HelicsFederate fed, int timeProperty, HelicsTime time, HelicsError *err)
Definition: FederateExport.cpp:1049
void helicsFederateInfoSetTimeProperty(HelicsFederateInfo fi, int timeProperty, HelicsTime propertyValue, HelicsError *err)
Definition: FederateExport.cpp:376
std::string query(const std::string &target, const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST) const
Definition: cpp98/Federate.hpp:482
void registerInterfaces(const std::string &configString)
Definition: cpp98/Federate.hpp:306
HelicsTime helicsFederateRequestNextStep(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:894
HelicsFederateInfo helicsCreateFederateInfo(void)
Definition: FederateExport.cpp:129
void setFlagOption(int flag, bool value=true)
Definition: cpp98/Federate.hpp:127
void * HelicsFederateInfo
Definition: api-data.h:66
const char * helicsFederateGetName(HelicsFederate fed)
Definition: FederateExport.cpp:1039
void setBroker(const std::string &broker)
Definition: cpp98/Federate.hpp:112
Filter getFilter(const std::string &filterName)
Definition: cpp98/Federate.hpp:590
void helicsFederateInfoFree(HelicsFederateInfo fi)
Definition: FederateExport.cpp:165
void logDebugMessage(const std::string &message)
Definition: cpp98/Federate.hpp:675
HelicsIterationTime requestTimeIterative(HelicsTime time, HelicsIterationRequest iterate)
Definition: cpp98/Federate.hpp:422
Federate & operator=(const Federate &fedObj)
Copy assignment operator.
Definition: cpp98/Federate.hpp:204
void helicsFederateInfoSetFlagOption(HelicsFederateInfo fi, int flag, HelicsBool value, HelicsError *err)
Definition: FederateExport.cpp:353
HelicsFederate baseObject() const
Definition: cpp98/Federate.hpp:243
void addDependency(const std::string &fedName)
Definition: cpp98/Federate.hpp:636
HelicsFilter helicsFederateGetFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:187
void helicsFederateEnterInitializingModeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:707
Federate(const Federate &fedObj)
Copy constructor.
Definition: cpp98/Federate.hpp:199
bool getFlagOption(int flag) const
Definition: cpp98/Federate.hpp:275
FederateInfo & operator=(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:51
void helicsFederateInfoSetCoreInitString(HelicsFederateInfo fi, const char *coreInit, HelicsError *err)
Definition: FederateExport.cpp:209
void enterInitializingMode()
Definition: cpp98/Federate.hpp:318
void helicsFederateInfoSetCoreName(HelicsFederateInfo fi, const char *corename, HelicsError *err)
Definition: FederateExport.cpp:195
int helicsFederateGetIntegerProperty(HelicsFederate fed, int intProperty, HelicsError *err)
Definition: FederateExport.cpp:1132
HelicsTime helicsFederateRequestTimeIterative(HelicsFederate fed, HelicsTime requestTime, HelicsIterationRequest iterate, HelicsIterationResult *outIteration, HelicsError *err)
Definition: FederateExport.cpp:910
Definition: helicsExceptions.hpp:38
void helicsFederateLogDebugMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1294
FederateInfo()
Definition: cpp98/Federate.hpp:30
void helicsFederateLogInfoMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1289
std::string query(const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST) const
Definition: cpp98/Federate.hpp:509
FederateInfo(const std::string &coretype)
Definition: cpp98/Federate.hpp:33
HelicsSequencingModes
Definition: helics_enums.h:363
void helicsFederateLogLevelMessage(HelicsFederate fed, int loglevel, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1299
const char * getName() const
Definition: cpp98/Federate.hpp:467
void helicsFederateInfoSetCoreTypeFromString(HelicsFederateInfo fi, const char *coretype, HelicsError *err)
Definition: FederateExport.cpp:246
const char * helicsFederateGetCommandSource(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1332
void setFlagOption(int flag, bool flagValue=true)
Definition: cpp98/Federate.hpp:248
HelicsIterationResult enterExecutingModeComplete()
Definition: cpp98/Federate.hpp:379
Federate() HELICS_NOTHROW
Default constructor.
Definition: cpp98/Federate.hpp:197
HelicsFilterTypes
Definition: helics_enums.h:339
CloningFilter registerGlobalCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:581
CloningFilter registerCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:558
void helicsFederateFinalizeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:639
void setSeparator(char sep)
Set the separator character.
Definition: cpp98/Federate.hpp:83
void enterInitializingModeComplete()
Definition: cpp98/Federate.hpp:339
const char * helicsFederateGetTag(HelicsFederate fed, const char *tagName, HelicsError *err)
Definition: FederateExport.cpp:1210
HelicsCore getCore()
Definition: cpp98/Federate.hpp:685
HelicsFederateState
Definition: api-data.h:129
@ HELICS_ITERATION_REQUEST_NO_ITERATION
Definition: api-data.h:111
void setProperty(int integerProperty, int propertyValue)
Definition: cpp98/Federate.hpp:146
HelicsTime requestTime(HelicsTime time)
Definition: cpp98/Federate.hpp:403
HelicsIterationResult
Definition: api-data.h:119
void setProperty(int tProperty, HelicsTime timeValue)
Definition: cpp98/Federate.hpp:259
void setGlobal(const std::string &valueName, const std::string &value)
Definition: cpp98/Federate.hpp:607
struct helicscpp::HelicsIterationTime HelicsIterationTime
@ HELICS_SEQUENCING_MODE_FAST
Definition: helics_enums.h:365
void requestTimeAsync(HelicsTime time)
Definition: cpp98/Federate.hpp:433
HelicsBool helicsFederateGetFlagOption(HelicsFederate fed, int flag, HelicsError *err)
Definition: FederateExport.cpp:1114
HelicsFederate fed
underlying HelicsFederate object
Definition: cpp98/Federate.hpp:690
void * HelicsCore
Definition: api-data.h:49
void setProperty(int timeProperty, HelicsTime timeValue)
Definition: cpp98/Federate.hpp:138
HelicsIterationResult status
the convergence state
Definition: cpp98/Federate.hpp:190
void setCoreInit(const std::string &coreInit)
Definition: cpp98/Federate.hpp:86
HelicsTime helicsFederateRequestTimeIterativeComplete(HelicsFederate fed, HelicsIterationResult *outIterate, HelicsError *err)
Definition: FederateExport.cpp:983
Filter getFilter(int index)
Definition: cpp98/Federate.hpp:597
void helicsFederateFinalizeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:634
void helicsFederateInfoSetBrokerKey(HelicsFederateInfo fi, const char *brokerkey, HelicsError *err)
Definition: FederateExport.cpp:281
void helicsFederateFree(HelicsFederate fed)
Definition: helicsExport.cpp:873
HelicsTime requestTimeAdvance(HelicsTime timeDelta)
Definition: cpp98/Federate.hpp:414
void helicsFederateRequestTimeAsync(HelicsFederate fed, HelicsTime requestTime, HelicsError *err)
Definition: FederateExport.cpp:939
void helicsFederateInfoSetBrokerInitString(HelicsFederateInfo fi, const char *brokerInit, HelicsError *err)
Definition: FederateExport.cpp:223
void logWarningMessage(const std::string &message)
Definition: cpp98/Federate.hpp:665
FederateInfo(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:46
void helicsFederateEnterInitializingMode(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:693
HelicsTime helicsFederateGetTimeProperty(HelicsFederate fed, int timeProperty, HelicsError *err)
Definition: FederateExport.cpp:1095
void helicsFederateInfoSetIntegerProperty(HelicsFederateInfo fi, int intProperty, int propertyValue, HelicsError *err)
Definition: FederateExport.cpp:394
HelicsFilter helicsFederateRegisterGlobalFilter(HelicsFederate fed, HelicsFilterTypes type, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:79
HelicsQuery helicsCreateQuery(const char *target, const char *query)
Definition: helicsExport.cpp:942
void helicsFederateEnterInitializingModeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:730
@ HELICS_ITERATION_RESULT_NEXT_STEP
Definition: api-data.h:120
virtual ~Federate()
Definition: cpp98/Federate.hpp:227
void helicsFederateLogErrorMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1279
void * HelicsQuery
Definition: api-data.h:72
HelicsTime getCurrentTime()
Definition: cpp98/Federate.hpp:399
HelicsFilter helicsFederateRegisterFilter(HelicsFederate fed, HelicsFilterTypes type, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:58
HelicsFilter helicsFederateRegisterCloningFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:123
void setTag(const std::string &tag, const std::string &value)
Definition: cpp98/Federate.hpp:617
HelicsIterationResult helicsFederateEnterExecutingModeIterativeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:846
void helicsFederateInfoSetSeparator(HelicsFederateInfo fi, char separator, HelicsError *err)
Definition: FederateExport.cpp:385
int getIntegerProperty(int intProperty) const
Definition: cpp98/Federate.hpp:289
Definition: Filter.hpp:18
HelicsCore helicsFederateGetCore(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:563
Filter registerFilter(HelicsFilterTypes type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:547
Definition: cpp98/Broker.hpp:18
void setSeparator(char sep)
Definition: cpp98/Federate.hpp:300
HelicsTime requestNextStep()
Definition: cpp98/Federate.hpp:409
HelicsIterationRequest
Definition: api-data.h:110
void helicsFederateInfoSetCoreType(HelicsFederateInfo fi, int coretype, HelicsError *err)
Definition: FederateExport.cpp:237
void helicsFederateRequestTimeIterativeAsync(HelicsFederate fed, HelicsTime requestTime, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:969