 |
helics
2.8.1
|
7 #ifndef HELICS_CPP98_FEDERATE_HPP_
8 #define HELICS_CPP98_FEDERATE_HPP_
11 #include "../shared_api_library/MessageFilters.h"
12 #include "../shared_api_library/helics.h"
13 #include "../shared_api_library/helicsCallbacks.h"
16 #include "helicsExceptions.hpp"
22 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
23 # include <functional>
60 #ifdef HELICS_HAS_RVALUE_REFS
65 fedInfo.fi = HELICS_NULL_POINTER;
72 fedInfo.fi = HELICS_NULL_POINTER;
134 HELICS_NULL_POINTER);
153 HELICS_NULL_POINTER);
162 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
165 inline void helicCppQueryCallbackExecutor(
const char* query,
170 auto cback =
reinterpret_cast<std::function<std::string(
const std::string&)
>*>(userData);
171 std::string val(query, stringSize);
172 std::string result = (*cback)(val);
202 #ifdef HELICS_HAS_RVALUE_REFS
207 fedObj.fed = HELICS_NULL_POINTER;
214 fedObj.fed = HELICS_NULL_POINTER;
221 if (
fed != HELICS_NULL_POINTER) {
224 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
225 if (callbackBuffer !=
nullptr) {
227 reinterpret_cast<std::function<std::string(
const std::string&)
>*>(callbackBuffer);
474 std::string
query(
const std::string& target,
475 const std::string& queryStr,
501 std::string
query(
const std::string& queryStr,
514 void setQueryCallback(
522 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
523 void setQueryCallback(std::function<std::string(
const std::string&)> callback)
526 callbackBuffer =
new std::function<std::string(const std::string&)>(std::move(callback));
528 details::helicCppQueryCallbackExecutor,
561 const std::string& filterName = std::string())
576 deliveryEndpoint.c_str(),
599 void setGlobal(
const std::string& valueName,
const std::string& value)
617 void localError(
int errorCode,
const std::string& errorString)
664 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
666 void* callbackBuffer{
nullptr};
void helicsQueryFree(helics_query query)
Definition: helicsExport.cpp:1063
void setCoreType(int coretype)
Definition: cpp98/Federate.hpp:107
void finalizeComplete()
Definition: cpp98/Federate.hpp:389
helics_filter helicsFederateRegisterCloningFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:123
void helicsFederateInfoSetCoreName(helics_federate_info fi, const char *corename, helics_error *err)
Definition: FederateExport.cpp:195
void requestTimeAsync(helics_time time)
Definition: cpp98/Federate.hpp:425
helics_iteration_result helicsFederateEnterExecutingModeIterative(helics_federate fed, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:765
void logMessage(int level, const std::string &message)
Definition: cpp98/Federate.hpp:652
void setBrokerInit(const std::string &brokerInit)
Set a string for the broker initialization in command line argument format.
Definition: cpp98/Federate.hpp:93
void enterInitializingModeAsync()
Definition: cpp98/Federate.hpp:315
void finalize()
Definition: cpp98/Federate.hpp:384
bool exec_async_iterate
indicator that the federate is in an async operation
Definition: cpp98/Federate.hpp:663
helics_bool helicsFederateGetFlagOption(helics_federate fed, int flag, helics_error *err)
Definition: FederateExport.cpp:1093
helics_filter helicsFederateRegisterFilter(helics_federate fed, helics_filter_type type, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:58
helics_iteration_time requestTimeIterative(helics_time time, helics_iteration_request iterate)
Definition: cpp98/Federate.hpp:414
void helicsFederateGlobalError(helics_federate fed, int errorCode, const char *errorString)
Definition: FederateExport.cpp:575
void helicsFederateLogLevelMessage(helics_federate fed, int loglevel, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1235
helics_time requestTimeComplete()
Definition: cpp98/Federate.hpp:443
void logErrorMessage(const std::string &message)
Definition: cpp98/Federate.hpp:632
void helicsFederateLogDebugMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1230
helics_federate_info helicsCreateFederateInfo(void)
Definition: FederateExport.cpp:129
void logInfoMessage(const std::string &message)
Definition: cpp98/Federate.hpp:642
void finalizeAsync()
Definition: cpp98/Federate.hpp:387
Definition: Filter.hpp:91
void localError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:617
void helicsFederateFinalizeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:637
helics_federate_state getCurrentMode() const
Definition: cpp98/Federate.hpp:303
void helicsFederateLogWarningMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1220
void enterExecutingModeAsync(helics_iteration_request iterate=helics_iteration_request_no_iteration)
Definition: cpp98/Federate.hpp:355
void helicsFederateInfoSetFlagOption(helics_federate_info fi, int flag, helics_bool value, helics_error *err)
Definition: FederateExport.cpp:345
@ helics_iteration_request_no_iteration
Definition: api-data.h:101
std::string query(const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast) const
Definition: cpp98/Federate.hpp:474
void helicsFederateEnterExecutingModeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:781
bool isAsyncOperationCompleted() const
Definition: cpp98/Federate.hpp:323
helics_iteration_time requestTimeIterativeComplete()
Definition: cpp98/Federate.hpp:451
double helics_time
Definition: api-data.h:81
Definition: cpp98/Federate.hpp:186
void * helics_core
Definition: api-data.h:46
void * helics_query
Definition: api-data.h:66
void setBrokerKey(const std::string &brokerkey)
Definition: cpp98/Federate.hpp:121
helics_iteration_result status
the convergence state
Definition: cpp98/Federate.hpp:182
helics_iteration_request
Definition: api-data.h:100
helics_iteration_result helicsFederateEnterExecutingModeIterativeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:822
void setCoreType(const std::string &coretype)
Definition: cpp98/Federate.hpp:100
helics_federate helicsFederateClone(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:519
void helicsFederateEnterInitializingMode(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:669
Definition: cpp98/Federate.hpp:29
void helicsFederateSetSeparator(helics_federate fed, char separator, helics_error *err)
Definition: FederateExport.cpp:1128
const helics_bool helics_false
Definition: api-data.h:95
const char * helicsQueryExecute(helics_query query, helics_federate fed, helics_error *err)
Definition: helicsExport.cpp:917
const helics_bool helics_true
Definition: api-data.h:94
void setProperty(int intProperty, int value)
Definition: cpp98/Federate.hpp:259
helics_time helicsFederateGetTimeProperty(helics_federate fed, int timeProperty, helics_error *err)
Definition: FederateExport.cpp:1074
void globalError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:626
void setCoreName(const std::string &corename)
Definition: cpp98/Federate.hpp:80
helics_federate baseObject() const
Definition: cpp98/Federate.hpp:235
helics_time requestTimeAdvance(helics_time timeDelta)
Definition: cpp98/Federate.hpp:406
int helicsFederateGetIntegerProperty(helics_federate fed, int intProperty, helics_error *err)
Definition: FederateExport.cpp:1111
~FederateInfo()
Definition: cpp98/Federate.hpp:77
FederateInfo(int coretype)
Definition: cpp98/Federate.hpp:42
void setProperty(int timeProperty, helics_time timeValue)
Definition: cpp98/Federate.hpp:140
helics_federate_info getInfo()
Definition: cpp98/Federate.hpp:156
helics_iteration_result enterExecutingModeComplete()
Definition: cpp98/Federate.hpp:371
helics_sequencing_mode
Definition: helics_enums.h:333
helics_time grantedTime
the time of the granted step
Definition: cpp98/Federate.hpp:181
helics_federate getObject() const
Definition: cpp98/Federate.hpp:659
helics_federate_state
Definition: api-data.h:119
void helicsFederateInfoFree(helics_federate_info fi)
Definition: FederateExport.cpp:165
void registerInterfaces(const std::string &configString)
Definition: cpp98/Federate.hpp:298
void helicsFederateSetFlagOption(helics_federate fed, int flag, helics_bool flagValue, helics_error *err)
Definition: FederateExport.cpp:1042
void setFlagOption(int flag, bool value=true)
Definition: cpp98/Federate.hpp:129
helics_time requestTime(helics_time time)
Definition: cpp98/Federate.hpp:395
void helicsFederateInfoSetCoreType(helics_federate_info fi, int coretype, helics_error *err)
Definition: FederateExport.cpp:237
const char * helicsFederateGetName(helics_federate fed)
Definition: FederateExport.cpp:1018
void setBroker(const std::string &broker)
Definition: cpp98/Federate.hpp:114
helics_time helicsFederateRequestTime(helics_federate fed, helics_time requestTime, helics_error *err)
Definition: FederateExport.cpp:838
void helicsFederateEnterInitializingModeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:706
void helicsFederateInfoSetBrokerKey(helics_federate_info fi, const char *brokerkey, helics_error *err)
Definition: FederateExport.cpp:281
helics_time requestNextStep()
Definition: cpp98/Federate.hpp:401
Filter getFilter(const std::string &filterName)
Definition: cpp98/Federate.hpp:582
helics_time helicsFederateRequestTimeIterative(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_iteration_result *outIteration, helics_error *err)
Definition: FederateExport.cpp:886
void logDebugMessage(const std::string &message)
Definition: cpp98/Federate.hpp:647
void helicsFederateEnterInitializingModeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:683
void helicsFederateAddDependency(helics_federate fed, const char *fedName, helics_error *err)
Definition: FederateExport.cpp:1169
void requestTimeIterativeAsync(helics_time time, helics_iteration_request iterate)
Definition: cpp98/Federate.hpp:436
helics_filter helicsFederateGetFilterByIndex(helics_federate fed, int index, helics_error *err)
Definition: MessageFiltersExport.cpp:224
void * helics_query_buffer
Definition: api-data.h:71
Federate & operator=(const Federate &fedObj)
Copy assignment operator.
Definition: cpp98/Federate.hpp:196
void addDependency(const std::string &fedName)
Definition: cpp98/Federate.hpp:608
Federate(const Federate &fedObj)
Copy constructor.
Definition: cpp98/Federate.hpp:191
bool getFlagOption(int flag) const
Definition: cpp98/Federate.hpp:267
void helicsFederateSetIntegerProperty(helics_federate fed, int intProperty, int propertyVal, helics_error *err)
Definition: FederateExport.cpp:1058
Definition: cpp98/Federate.hpp:179
void helicsQuerySetOrdering(helics_query query, int32_t mode, helics_error *err)
Definition: helicsExport.cpp:1054
FederateInfo & operator=(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:53
helics_filter_type
Definition: helics_enums.h:308
void helicsFederateFree(helics_federate fed)
Definition: helicsExport.cpp:837
void enterInitializingMode()
Definition: cpp98/Federate.hpp:310
Definition: helicsExceptions.hpp:38
FederateInfo()
Definition: cpp98/Federate.hpp:32
void helicsFederateSetQueryCallback(helics_federate fed, void(*queryAnswer)(const char *query, int querySize, helics_query_buffer buffer, void *userdata), void *userdata, helics_error *err)
Definition: helicsCallbacks.cpp:92
FederateInfo(const std::string &coretype)
Definition: cpp98/Federate.hpp:35
helics_iteration_result enterExecutingMode(helics_iteration_request iterate=helics_iteration_request_no_iteration)
Definition: cpp98/Federate.hpp:340
void helicsFederateInfoSetBrokerInitString(helics_federate_info fi, const char *brokerInit, helics_error *err)
Definition: FederateExport.cpp:223
Filter registerGlobalFilter(helics_filter_type type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:560
helics_federate fed
underlying helics_federate object
Definition: cpp98/Federate.hpp:662
void helicsFederateFinalize(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:605
const char * getName() const
Definition: cpp98/Federate.hpp:459
@ helics_iteration_result_next_step
Definition: api-data.h:110
void setFlagOption(int flag, bool flagValue=true)
Definition: cpp98/Federate.hpp:240
Federate() HELICS_NOTHROW
Default constructor.
Definition: cpp98/Federate.hpp:189
CloningFilter registerGlobalCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:573
helics_core helicsFederateGetCoreObject(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:541
CloningFilter registerCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:550
void helicsFederateInfoSetBroker(helics_federate_info fi, const char *broker, helics_error *err)
Definition: FederateExport.cpp:267
void helicsFederateInfoSetCoreTypeFromString(helics_federate_info fi, const char *coretype, helics_error *err)
Definition: FederateExport.cpp:246
void helicsFederateInfoSetIntegerProperty(helics_federate_info fi, int intProperty, int propertyValue, helics_error *err)
Definition: FederateExport.cpp:372
void setSeparator(char sep)
Set the separator character.
Definition: cpp98/Federate.hpp:85
void helicsFederateRequestTimeAsync(helics_federate fed, helics_time requestTime, helics_error *err)
Definition: FederateExport.cpp:915
helics_bool helicsFederateIsAsyncOperationCompleted(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:697
void enterInitializingModeComplete()
Definition: cpp98/Federate.hpp:331
void helicsFederateSetGlobal(helics_federate fed, const char *valueName, const char *value, helics_error *err)
Definition: FederateExport.cpp:1148
void setProperty(int tProperty, helics_time timeValue)
Definition: cpp98/Federate.hpp:251
void helicsFederateInfoSetCoreInitString(helics_federate_info fi, const char *coreInit, helics_error *err)
Definition: FederateExport.cpp:209
helics_time helicsFederateGetCurrentTime(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:1137
void helicsFederateRegisterInterfaces(helics_federate fed, const char *file, helics_error *err)
Definition: FederateExport.cpp:557
void helicsQueryBufferFill(helics_query_buffer buffer, const char *str, int strSize, helics_error *err)
Definition: helicsCallbacks.cpp:119
helics_core getCore()
Definition: cpp98/Federate.hpp:657
void helicsFederateRequestTimeIterativeAsync(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:945
void helicsFederateLocalError(helics_federate fed, int errorCode, const char *errorString)
Definition: FederateExport.cpp:590
void setProperty(int integerProperty, int propertyValue)
Definition: cpp98/Federate.hpp:148
void * helics_federate_info
Definition: api-data.h:61
helics_time helicsFederateRequestTimeAdvance(helics_federate fed, helics_time timeDelta, helics_error *err)
Definition: FederateExport.cpp:854
void setGlobal(const std::string &valueName, const std::string &value)
Definition: cpp98/Federate.hpp:599
helics_time helicsFederateRequestNextStep(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:870
void helicsFederateInfoSetTimeProperty(helics_federate_info fi, int timeProperty, helics_time propertyValue, helics_error *err)
Definition: FederateExport.cpp:354
helics_time getTimeProperty(int tProperty) const
Definition: cpp98/Federate.hpp:274
void helicsFederateLogInfoMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1225
helics_filter helicsFederateRegisterGlobalFilter(helics_federate fed, helics_filter_type type, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:79
void setCoreInit(const std::string &coreInit)
Definition: cpp98/Federate.hpp:88
Filter getFilter(int index)
Definition: cpp98/Federate.hpp:589
void logWarningMessage(const std::string &message)
Definition: cpp98/Federate.hpp:637
FederateInfo(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:48
helics_filter helicsFederateRegisterGlobalCloningFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:143
void helicsFederateSetTimeProperty(helics_federate fed, int timeProperty, helics_time time, helics_error *err)
Definition: FederateExport.cpp:1028
std::string query(const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast) const
Definition: cpp98/Federate.hpp:501
void helicsFederateLogErrorMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1215
virtual ~Federate()
Definition: cpp98/Federate.hpp:219
void helicsFederateFinalizeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:621
@ helics_sequencing_mode_fast
Definition: helics_enums.h:335
helics_time getCurrentTime()
Definition: cpp98/Federate.hpp:391
helics_time helicsFederateRequestTimeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:929
helics_federate_state helicsFederateGetState(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:1000
void helicsFederateEnterExecutingMode(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:720
void helicsFederateEnterExecutingModeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:809
int getIntegerProperty(int intProperty) const
Definition: cpp98/Federate.hpp:281
Filter registerFilter(helics_filter_type type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:539
void helicsFederateEnterExecutingModeIterativeAsync(helics_federate fed, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:795
Definition: Filter.hpp:18
helics_filter helicsFederateGetFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:187
Definition: cpp98/Broker.hpp:18
void setSeparator(char sep)
Definition: cpp98/Federate.hpp:292
void helicsFederateInfoSetSeparator(helics_federate_info fi, char separator, helics_error *err)
Definition: FederateExport.cpp:363
helics_query helicsCreateQuery(const char *target, const char *query)
Definition: helicsExport.cpp:906
void * helics_federate
Definition: api-data.h:56
helics_iteration_result
Definition: api-data.h:109
helics_time helicsFederateRequestTimeIterativeComplete(helics_federate fed, helics_iteration_result *outIterate, helics_error *err)
Definition: FederateExport.cpp:962