helics  2.8.1
cpp98/Federate.hpp
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #ifndef HELICS_CPP98_FEDERATE_HPP_
8 #define HELICS_CPP98_FEDERATE_HPP_
9 #pragma once
10 
11 #include "../shared_api_library/MessageFilters.h"
12 #include "../shared_api_library/helics.h"
13 #include "../shared_api_library/helicsCallbacks.h"
14 #include "Filter.hpp"
15 #include "config.hpp"
16 #include "helicsExceptions.hpp"
17 
18 #include <complex>
19 #include <string>
20 #include <vector>
21 
22 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
23 # include <functional>
24 # include <utility>
25 #endif
26 
27 namespace helicscpp {
29 class FederateInfo {
30  public:
35  explicit FederateInfo(const std::string& coretype)
36  {
39  }
42  explicit FederateInfo(int coretype)
43  {
46  }
48  FederateInfo(const FederateInfo& fedInfo)
49  {
50  fi = helicsFederateClone(fedInfo.fi, hThrowOnError());
51  }
54  {
57  fi = fi_new;
58  return *this;
59  }
60 #ifdef HELICS_HAS_RVALUE_REFS
61 
62  FederateInfo(FederateInfo&& fedInfo) HELICS_NOTHROW
63  {
64  fi = fedInfo.fi;
65  fedInfo.fi = HELICS_NULL_POINTER;
66  }
68  FederateInfo& operator=(FederateInfo&& fedInfo) HELICS_NOTHROW
69  {
71  fi = fedInfo.fi;
72  fedInfo.fi = HELICS_NULL_POINTER;
73  return *this;
74  }
75 #endif
76 
80  void setCoreName(const std::string& corename)
81  {
82  helicsFederateInfoSetCoreName(fi, corename.c_str(), HELICS_NULL_POINTER);
83  }
85  void setSeparator(char sep) { helicsFederateInfoSetSeparator(fi, sep, HELICS_NULL_POINTER); }
88  void setCoreInit(const std::string& coreInit)
89  {
90  helicsFederateInfoSetCoreInitString(fi, coreInit.c_str(), HELICS_NULL_POINTER);
91  }
93  void setBrokerInit(const std::string& brokerInit)
94  {
95  helicsFederateInfoSetBrokerInitString(fi, brokerInit.c_str(), HELICS_NULL_POINTER);
96  }
100  void setCoreType(const std::string& coretype)
101  {
103  }
107  void setCoreType(int coretype)
108  {
109  helicsFederateInfoSetCoreType(fi, coretype, HELICS_NULL_POINTER);
110  }
114  void setBroker(const std::string& broker)
115  {
116  helicsFederateInfoSetBroker(fi, broker.c_str(), HELICS_NULL_POINTER);
117  }
121  void setBrokerKey(const std::string& brokerkey)
122  {
123  helicsFederateInfoSetBrokerKey(fi, brokerkey.c_str(), HELICS_NULL_POINTER);
124  }
129  void setFlagOption(int flag, bool value = true)
130  {
132  flag,
133  value ? helics_true : helics_false,
134  HELICS_NULL_POINTER);
135  }
140  void setProperty(int timeProperty, helics_time timeValue)
141  {
142  helicsFederateInfoSetTimeProperty(fi, timeProperty, timeValue, HELICS_NULL_POINTER);
143  }
148  void setProperty(int integerProperty, int propertyValue)
149  {
151  integerProperty,
152  propertyValue,
153  HELICS_NULL_POINTER);
154  }
156  helics_federate_info getInfo() { return fi; }
157 
158  private:
160 };
161 
162 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
163 namespace details {
165  inline void helicCppQueryCallbackExecutor(const char* query,
166  int stringSize,
167  helics_query_buffer buffer,
168  void* userData)
169  {
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);
173  helicsQueryBufferFill(buffer, result.c_str(), static_cast<int>(result.size()), nullptr);
174  }
175 } // namespace details
176 #endif
177 
179 typedef struct {
180  public:
184 
186 class Federate {
187  public:
189  Federate() HELICS_NOTHROW: fed(NULL), exec_async_iterate(false) {}
192  {
194  }
196  Federate& operator=(const Federate& fedObj)
197  {
200  return *this;
201  }
202 #ifdef HELICS_HAS_RVALUE_REFS
203 
204  Federate(Federate&& fedObj) HELICS_NOTHROW: exec_async_iterate(fedObj.exec_async_iterate)
205  {
206  fed = fedObj.fed;
207  fedObj.fed = HELICS_NULL_POINTER;
208  }
210  Federate& operator=(Federate&& fedObj) HELICS_NOTHROW
211  {
212  exec_async_iterate = fedObj.exec_async_iterate;
213  fed = fedObj.fed;
214  fedObj.fed = HELICS_NULL_POINTER;
215  return *this;
216  }
217 #endif
218 
219  virtual ~Federate()
220  {
221  if (fed != HELICS_NULL_POINTER) {
223  }
224 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
225  if (callbackBuffer != nullptr) {
226  auto cback =
227  reinterpret_cast<std::function<std::string(const std::string&)>*>(callbackBuffer);
228  delete cback;
229  }
230 #endif
231  }
233  operator helics_federate() const { return fed; }
235  helics_federate baseObject() const { return fed; }
240  void setFlagOption(int flag, bool flagValue = true)
241  {
243  flag,
244  flagValue ? helics_true : helics_false,
245  hThrowOnError());
246  }
251  void setProperty(int tProperty, helics_time timeValue)
252  {
253  helicsFederateSetTimeProperty(fed, tProperty, timeValue, hThrowOnError());
254  }
259  void setProperty(int intProperty, int value)
260  {
261  helicsFederateSetIntegerProperty(fed, intProperty, value, hThrowOnError());
262  }
263 
267  bool getFlagOption(int flag) const
268  {
270  }
274  helics_time getTimeProperty(int tProperty) const
275  {
276  return helicsFederateGetTimeProperty(fed, tProperty, hThrowOnError());
277  }
281  int getIntegerProperty(int intProperty) const
282  {
283  return helicsFederateGetIntegerProperty(fed, intProperty, hThrowOnError());
284  }
292  void setSeparator(char sep) { helicsFederateSetSeparator(fed, sep, HELICS_NULL_POINTER); }
298  void registerInterfaces(const std::string& configString)
299  {
300  helicsFederateRegisterInterfaces(fed, configString.c_str(), hThrowOnError());
301  }
304  {
305  return helicsFederateGetState(fed, HELICS_NULL_POINTER);
306  }
316  {
318  }
324  {
325  // returns int, 1 = true, 0 = false
326  return helicsFederateIsAsyncOperationCompleted(fed, HELICS_NULL_POINTER) > 0;
327  }
332  {
334  }
341  {
343  if (iterate == helics_iteration_request_no_iteration) {
345  } else {
347  }
348  return out_iterate;
349  }
357  {
358  if (iterate == helics_iteration_request_no_iteration) {
360  exec_async_iterate = false;
361  } else {
363  exec_async_iterate = true;
364  }
365  }
366 
372  {
374  if (exec_async_iterate) {
376  } else {
378  }
379  return out_iterate;
380  }
396  {
398  }
402 
407  {
408  return helicsFederateRequestTimeAdvance(fed, timeDelta, hThrowOnError());
409  }
415  {
416  helics_iteration_time itTime;
418  fed, time, iterate, &(itTime.status), hThrowOnError());
419  return itTime;
420  }
426  {
428  }
429 
437  {
439  }
440 
444  {
446  }
447 
452  {
453  helics_iteration_time itTime;
454  itTime.grantedTime =
456  return itTime;
457  }
459  const char* getName() const { return helicsFederateGetName(fed); }
460 
474  std::string query(const std::string& target,
475  const std::string& queryStr,
477  {
478  // returns helics_query
479  helics_query q = helicsCreateQuery(target.c_str(), queryStr.c_str());
480  if (mode != helics_sequencing_mode_fast) {
481  helicsQuerySetOrdering(q, mode, HELICS_IGNORE_ERROR);
482  }
483  std::string result(helicsQueryExecute(q, fed, hThrowOnError()));
484  helicsQueryFree(q);
485  return result;
486  }
487 
501  std::string query(const std::string& queryStr,
503  {
504  // returns helics_query
505  helics_query q = helicsCreateQuery(HELICS_NULL_POINTER, queryStr.c_str());
506  if (mode != helics_sequencing_mode_fast) {
507  helicsQuerySetOrdering(q, mode, HELICS_IGNORE_ERROR);
508  }
509  std::string result(helicsQueryExecute(q, fed, hThrowOnError()));
510  helicsQueryFree(q);
511  return result;
512  }
513 
514  void setQueryCallback(
515  void (*queryAnswer)(const char* query, int querySize, helics_query_buffer, void* userdata),
516  void* userdata)
517 
518  {
519  helicsFederateSetQueryCallback(fed, queryAnswer, userdata, hThrowOnError());
520  }
521 
522 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
523  void setQueryCallback(std::function<std::string(const std::string&)> callback)
524 
525  {
526  callbackBuffer = new std::function<std::string(const std::string&)>(std::move(callback));
528  details::helicCppQueryCallbackExecutor,
529  callbackBuffer,
530  hThrowOnError());
531  }
532 
533 #endif
534 
539  Filter registerFilter(helics_filter_type type, const std::string& filterName = std::string())
540  {
541  return Filter(helicsFederateRegisterFilter(fed, type, filterName.c_str(), hThrowOnError()));
542  }
543 
550  CloningFilter registerCloningFilter(const std::string& deliveryEndpoint)
551  {
552  return CloningFilter(
553  helicsFederateRegisterCloningFilter(fed, deliveryEndpoint.c_str(), hThrowOnError()));
554  }
561  const std::string& filterName = std::string())
562  {
563  return Filter(
564  helicsFederateRegisterGlobalFilter(fed, type, filterName.c_str(), hThrowOnError()));
565  }
566 
573  CloningFilter registerGlobalCloningFilter(const std::string& deliveryEndpoint)
574  {
576  deliveryEndpoint.c_str(),
577  hThrowOnError()));
578  }
582  Filter getFilter(const std::string& filterName)
583  {
584  return Filter(helicsFederateGetFilter(fed, filterName.c_str(), hThrowOnError()));
585  }
589  Filter getFilter(int index)
590  {
592  }
593 
599  void setGlobal(const std::string& valueName, const std::string& value)
600  {
601  helicsFederateSetGlobal(fed, valueName.c_str(), value.c_str(), hThrowOnError());
602  }
603 
608  void addDependency(const std::string& fedName)
609  {
610  helicsFederateAddDependency(fed, fedName.c_str(), hThrowOnError());
611  }
612 
617  void localError(int errorCode, const std::string& errorString)
618  {
619  helicsFederateLocalError(fed, errorCode, errorString.c_str());
620  }
621 
626  void globalError(int errorCode, const std::string& errorString)
627  {
628  helicsFederateGlobalError(fed, errorCode, errorString.c_str());
629  }
630 
632  void logErrorMessage(const std::string& message)
633  {
634  helicsFederateLogErrorMessage(fed, message.c_str(), hThrowOnError());
635  }
637  void logWarningMessage(const std::string& message)
638  {
640  }
642  void logInfoMessage(const std::string& message)
643  {
644  helicsFederateLogInfoMessage(fed, message.c_str(), hThrowOnError());
645  }
647  void logDebugMessage(const std::string& message)
648  {
649  helicsFederateLogDebugMessage(fed, message.c_str(), hThrowOnError());
650  }
652  void logMessage(int level, const std::string& message)
653  {
654  helicsFederateLogLevelMessage(fed, level, message.c_str(), hThrowOnError());
655  }
659  helics_federate getObject() const { return fed; }
660 
661  protected:
664 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
665  private:
666  void* callbackBuffer{nullptr};
667 #endif
668 };
669 
670 } // namespace helicscpp
671 
672 #endif
helicsQueryFree
void helicsQueryFree(helics_query query)
Definition: helicsExport.cpp:1063
helicscpp::FederateInfo::setCoreType
void setCoreType(int coretype)
Definition: cpp98/Federate.hpp:107
helicscpp::Federate::finalizeComplete
void finalizeComplete()
Definition: cpp98/Federate.hpp:389
helicsFederateRegisterCloningFilter
helics_filter helicsFederateRegisterCloningFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:123
helicsFederateInfoSetCoreName
void helicsFederateInfoSetCoreName(helics_federate_info fi, const char *corename, helics_error *err)
Definition: FederateExport.cpp:195
helicscpp::Federate::requestTimeAsync
void requestTimeAsync(helics_time time)
Definition: cpp98/Federate.hpp:425
helicsFederateEnterExecutingModeIterative
helics_iteration_result helicsFederateEnterExecutingModeIterative(helics_federate fed, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:765
helicscpp::Federate::logMessage
void logMessage(int level, const std::string &message)
Definition: cpp98/Federate.hpp:652
helicscpp::FederateInfo::setBrokerInit
void setBrokerInit(const std::string &brokerInit)
Set a string for the broker initialization in command line argument format.
Definition: cpp98/Federate.hpp:93
helicscpp::Federate::enterInitializingModeAsync
void enterInitializingModeAsync()
Definition: cpp98/Federate.hpp:315
helicscpp::Federate::finalize
void finalize()
Definition: cpp98/Federate.hpp:384
helicscpp::Federate::exec_async_iterate
bool exec_async_iterate
indicator that the federate is in an async operation
Definition: cpp98/Federate.hpp:663
helicsFederateGetFlagOption
helics_bool helicsFederateGetFlagOption(helics_federate fed, int flag, helics_error *err)
Definition: FederateExport.cpp:1093
helicsFederateRegisterFilter
helics_filter helicsFederateRegisterFilter(helics_federate fed, helics_filter_type type, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:58
helicscpp::Federate::requestTimeIterative
helics_iteration_time requestTimeIterative(helics_time time, helics_iteration_request iterate)
Definition: cpp98/Federate.hpp:414
helicsFederateGlobalError
void helicsFederateGlobalError(helics_federate fed, int errorCode, const char *errorString)
Definition: FederateExport.cpp:575
helicsFederateLogLevelMessage
void helicsFederateLogLevelMessage(helics_federate fed, int loglevel, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1235
helicscpp::Federate::requestTimeComplete
helics_time requestTimeComplete()
Definition: cpp98/Federate.hpp:443
helicscpp::Federate::logErrorMessage
void logErrorMessage(const std::string &message)
Definition: cpp98/Federate.hpp:632
helicsFederateLogDebugMessage
void helicsFederateLogDebugMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1230
helicsCreateFederateInfo
helics_federate_info helicsCreateFederateInfo(void)
Definition: FederateExport.cpp:129
helicscpp::Federate::logInfoMessage
void logInfoMessage(const std::string &message)
Definition: cpp98/Federate.hpp:642
helicscpp::Federate::finalizeAsync
void finalizeAsync()
Definition: cpp98/Federate.hpp:387
helicscpp::CloningFilter
Definition: Filter.hpp:91
helicscpp::Federate::localError
void localError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:617
helicsFederateFinalizeComplete
void helicsFederateFinalizeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:637
helicscpp::Federate::getCurrentMode
helics_federate_state getCurrentMode() const
Definition: cpp98/Federate.hpp:303
helicsFederateLogWarningMessage
void helicsFederateLogWarningMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1220
helicscpp::Federate::enterExecutingModeAsync
void enterExecutingModeAsync(helics_iteration_request iterate=helics_iteration_request_no_iteration)
Definition: cpp98/Federate.hpp:355
helicsFederateInfoSetFlagOption
void helicsFederateInfoSetFlagOption(helics_federate_info fi, int flag, helics_bool value, helics_error *err)
Definition: FederateExport.cpp:345
helics_iteration_request_no_iteration
@ helics_iteration_request_no_iteration
Definition: api-data.h:101
helicscpp::Federate::query
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
helicsFederateEnterExecutingModeAsync
void helicsFederateEnterExecutingModeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:781
helicscpp::Federate::isAsyncOperationCompleted
bool isAsyncOperationCompleted() const
Definition: cpp98/Federate.hpp:323
helicscpp::Federate::requestTimeIterativeComplete
helics_iteration_time requestTimeIterativeComplete()
Definition: cpp98/Federate.hpp:451
helics_time
double helics_time
Definition: api-data.h:81
helicscpp::Federate
Definition: cpp98/Federate.hpp:186
helics_core
void * helics_core
Definition: api-data.h:46
helics_query
void * helics_query
Definition: api-data.h:66
helicscpp::FederateInfo::setBrokerKey
void setBrokerKey(const std::string &brokerkey)
Definition: cpp98/Federate.hpp:121
helicscpp::helics_iteration_time::status
helics_iteration_result status
the convergence state
Definition: cpp98/Federate.hpp:182
helics_iteration_request
helics_iteration_request
Definition: api-data.h:100
helicsFederateEnterExecutingModeIterativeComplete
helics_iteration_result helicsFederateEnterExecutingModeIterativeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:822
helicscpp::FederateInfo::setCoreType
void setCoreType(const std::string &coretype)
Definition: cpp98/Federate.hpp:100
helicsFederateClone
helics_federate helicsFederateClone(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:519
helicsFederateEnterInitializingMode
void helicsFederateEnterInitializingMode(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:669
helicscpp::FederateInfo
Definition: cpp98/Federate.hpp:29
helicsFederateSetSeparator
void helicsFederateSetSeparator(helics_federate fed, char separator, helics_error *err)
Definition: FederateExport.cpp:1128
helics_false
const helics_bool helics_false
Definition: api-data.h:95
helicsQueryExecute
const char * helicsQueryExecute(helics_query query, helics_federate fed, helics_error *err)
Definition: helicsExport.cpp:917
helics_true
const helics_bool helics_true
Definition: api-data.h:94
helicscpp::Federate::setProperty
void setProperty(int intProperty, int value)
Definition: cpp98/Federate.hpp:259
helicsFederateGetTimeProperty
helics_time helicsFederateGetTimeProperty(helics_federate fed, int timeProperty, helics_error *err)
Definition: FederateExport.cpp:1074
helicscpp::Federate::globalError
void globalError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:626
helicscpp::FederateInfo::setCoreName
void setCoreName(const std::string &corename)
Definition: cpp98/Federate.hpp:80
helicscpp::Federate::baseObject
helics_federate baseObject() const
Definition: cpp98/Federate.hpp:235
helicscpp::Federate::requestTimeAdvance
helics_time requestTimeAdvance(helics_time timeDelta)
Definition: cpp98/Federate.hpp:406
helicsFederateGetIntegerProperty
int helicsFederateGetIntegerProperty(helics_federate fed, int intProperty, helics_error *err)
Definition: FederateExport.cpp:1111
helicscpp::FederateInfo::~FederateInfo
~FederateInfo()
Definition: cpp98/Federate.hpp:77
helicscpp::FederateInfo::FederateInfo
FederateInfo(int coretype)
Definition: cpp98/Federate.hpp:42
helicscpp::FederateInfo::setProperty
void setProperty(int timeProperty, helics_time timeValue)
Definition: cpp98/Federate.hpp:140
helicscpp::FederateInfo::getInfo
helics_federate_info getInfo()
Definition: cpp98/Federate.hpp:156
helicscpp::Federate::enterExecutingModeComplete
helics_iteration_result enterExecutingModeComplete()
Definition: cpp98/Federate.hpp:371
helics_sequencing_mode
helics_sequencing_mode
Definition: helics_enums.h:333
helicscpp::helics_iteration_time::grantedTime
helics_time grantedTime
the time of the granted step
Definition: cpp98/Federate.hpp:181
helicscpp::Federate::getObject
helics_federate getObject() const
Definition: cpp98/Federate.hpp:659
helics_federate_state
helics_federate_state
Definition: api-data.h:119
helicsFederateInfoFree
void helicsFederateInfoFree(helics_federate_info fi)
Definition: FederateExport.cpp:165
helicscpp::Federate::registerInterfaces
void registerInterfaces(const std::string &configString)
Definition: cpp98/Federate.hpp:298
helicsFederateSetFlagOption
void helicsFederateSetFlagOption(helics_federate fed, int flag, helics_bool flagValue, helics_error *err)
Definition: FederateExport.cpp:1042
helicscpp::FederateInfo::setFlagOption
void setFlagOption(int flag, bool value=true)
Definition: cpp98/Federate.hpp:129
helicscpp::Federate::requestTime
helics_time requestTime(helics_time time)
Definition: cpp98/Federate.hpp:395
helicsFederateInfoSetCoreType
void helicsFederateInfoSetCoreType(helics_federate_info fi, int coretype, helics_error *err)
Definition: FederateExport.cpp:237
helicsFederateGetName
const char * helicsFederateGetName(helics_federate fed)
Definition: FederateExport.cpp:1018
helicscpp::FederateInfo::setBroker
void setBroker(const std::string &broker)
Definition: cpp98/Federate.hpp:114
helicsFederateRequestTime
helics_time helicsFederateRequestTime(helics_federate fed, helics_time requestTime, helics_error *err)
Definition: FederateExport.cpp:838
helicsFederateEnterInitializingModeComplete
void helicsFederateEnterInitializingModeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:706
helicsFederateInfoSetBrokerKey
void helicsFederateInfoSetBrokerKey(helics_federate_info fi, const char *brokerkey, helics_error *err)
Definition: FederateExport.cpp:281
helicscpp::Federate::requestNextStep
helics_time requestNextStep()
Definition: cpp98/Federate.hpp:401
helicscpp::Federate::getFilter
Filter getFilter(const std::string &filterName)
Definition: cpp98/Federate.hpp:582
helicsFederateRequestTimeIterative
helics_time helicsFederateRequestTimeIterative(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_iteration_result *outIteration, helics_error *err)
Definition: FederateExport.cpp:886
helicscpp::Federate::logDebugMessage
void logDebugMessage(const std::string &message)
Definition: cpp98/Federate.hpp:647
helicsFederateEnterInitializingModeAsync
void helicsFederateEnterInitializingModeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:683
helicsFederateAddDependency
void helicsFederateAddDependency(helics_federate fed, const char *fedName, helics_error *err)
Definition: FederateExport.cpp:1169
helicscpp::Federate::requestTimeIterativeAsync
void requestTimeIterativeAsync(helics_time time, helics_iteration_request iterate)
Definition: cpp98/Federate.hpp:436
helicsFederateGetFilterByIndex
helics_filter helicsFederateGetFilterByIndex(helics_federate fed, int index, helics_error *err)
Definition: MessageFiltersExport.cpp:224
helics_query_buffer
void * helics_query_buffer
Definition: api-data.h:71
helicscpp::Federate::operator=
Federate & operator=(const Federate &fedObj)
Copy assignment operator.
Definition: cpp98/Federate.hpp:196
helicscpp::Federate::addDependency
void addDependency(const std::string &fedName)
Definition: cpp98/Federate.hpp:608
helicscpp::Federate::Federate
Federate(const Federate &fedObj)
Copy constructor.
Definition: cpp98/Federate.hpp:191
helicscpp::Federate::getFlagOption
bool getFlagOption(int flag) const
Definition: cpp98/Federate.hpp:267
helicsFederateSetIntegerProperty
void helicsFederateSetIntegerProperty(helics_federate fed, int intProperty, int propertyVal, helics_error *err)
Definition: FederateExport.cpp:1058
helicscpp::helics_iteration_time
Definition: cpp98/Federate.hpp:179
helicsQuerySetOrdering
void helicsQuerySetOrdering(helics_query query, int32_t mode, helics_error *err)
Definition: helicsExport.cpp:1054
helicscpp::FederateInfo::operator=
FederateInfo & operator=(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:53
helics_filter_type
helics_filter_type
Definition: helics_enums.h:308
helicsFederateFree
void helicsFederateFree(helics_federate fed)
Definition: helicsExport.cpp:837
helicscpp::Federate::enterInitializingMode
void enterInitializingMode()
Definition: cpp98/Federate.hpp:310
helicscpp::hThrowOnError
Definition: helicsExceptions.hpp:38
helicscpp::FederateInfo::FederateInfo
FederateInfo()
Definition: cpp98/Federate.hpp:32
helicsFederateSetQueryCallback
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
helicscpp::FederateInfo::FederateInfo
FederateInfo(const std::string &coretype)
Definition: cpp98/Federate.hpp:35
helicscpp::Federate::enterExecutingMode
helics_iteration_result enterExecutingMode(helics_iteration_request iterate=helics_iteration_request_no_iteration)
Definition: cpp98/Federate.hpp:340
helicsFederateInfoSetBrokerInitString
void helicsFederateInfoSetBrokerInitString(helics_federate_info fi, const char *brokerInit, helics_error *err)
Definition: FederateExport.cpp:223
helicscpp::Federate::registerGlobalFilter
Filter registerGlobalFilter(helics_filter_type type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:560
helicscpp::Federate::fed
helics_federate fed
underlying helics_federate object
Definition: cpp98/Federate.hpp:662
helicsFederateFinalize
void helicsFederateFinalize(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:605
helicscpp::Federate::getName
const char * getName() const
Definition: cpp98/Federate.hpp:459
helics_iteration_result_next_step
@ helics_iteration_result_next_step
Definition: api-data.h:110
helicscpp::Federate::setFlagOption
void setFlagOption(int flag, bool flagValue=true)
Definition: cpp98/Federate.hpp:240
helicscpp::Federate::Federate
Federate() HELICS_NOTHROW
Default constructor.
Definition: cpp98/Federate.hpp:189
helicscpp::Federate::registerGlobalCloningFilter
CloningFilter registerGlobalCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:573
helicsFederateGetCoreObject
helics_core helicsFederateGetCoreObject(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:541
helicscpp::Federate::registerCloningFilter
CloningFilter registerCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:550
helicsFederateInfoSetBroker
void helicsFederateInfoSetBroker(helics_federate_info fi, const char *broker, helics_error *err)
Definition: FederateExport.cpp:267
helicsFederateInfoSetCoreTypeFromString
void helicsFederateInfoSetCoreTypeFromString(helics_federate_info fi, const char *coretype, helics_error *err)
Definition: FederateExport.cpp:246
helicsFederateInfoSetIntegerProperty
void helicsFederateInfoSetIntegerProperty(helics_federate_info fi, int intProperty, int propertyValue, helics_error *err)
Definition: FederateExport.cpp:372
helicscpp::FederateInfo::setSeparator
void setSeparator(char sep)
Set the separator character.
Definition: cpp98/Federate.hpp:85
helicsFederateRequestTimeAsync
void helicsFederateRequestTimeAsync(helics_federate fed, helics_time requestTime, helics_error *err)
Definition: FederateExport.cpp:915
helicsFederateIsAsyncOperationCompleted
helics_bool helicsFederateIsAsyncOperationCompleted(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:697
helicscpp::Federate::enterInitializingModeComplete
void enterInitializingModeComplete()
Definition: cpp98/Federate.hpp:331
helicsFederateSetGlobal
void helicsFederateSetGlobal(helics_federate fed, const char *valueName, const char *value, helics_error *err)
Definition: FederateExport.cpp:1148
helicscpp::Federate::setProperty
void setProperty(int tProperty, helics_time timeValue)
Definition: cpp98/Federate.hpp:251
helicsFederateInfoSetCoreInitString
void helicsFederateInfoSetCoreInitString(helics_federate_info fi, const char *coreInit, helics_error *err)
Definition: FederateExport.cpp:209
helicsFederateGetCurrentTime
helics_time helicsFederateGetCurrentTime(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:1137
helicsFederateRegisterInterfaces
void helicsFederateRegisterInterfaces(helics_federate fed, const char *file, helics_error *err)
Definition: FederateExport.cpp:557
helicsQueryBufferFill
void helicsQueryBufferFill(helics_query_buffer buffer, const char *str, int strSize, helics_error *err)
Definition: helicsCallbacks.cpp:119
helicscpp::Federate::getCore
helics_core getCore()
Definition: cpp98/Federate.hpp:657
helicsFederateRequestTimeIterativeAsync
void helicsFederateRequestTimeIterativeAsync(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:945
helicsFederateLocalError
void helicsFederateLocalError(helics_federate fed, int errorCode, const char *errorString)
Definition: FederateExport.cpp:590
helicscpp::FederateInfo::setProperty
void setProperty(int integerProperty, int propertyValue)
Definition: cpp98/Federate.hpp:148
helics_federate_info
void * helics_federate_info
Definition: api-data.h:61
helicsFederateRequestTimeAdvance
helics_time helicsFederateRequestTimeAdvance(helics_federate fed, helics_time timeDelta, helics_error *err)
Definition: FederateExport.cpp:854
helicscpp::Federate::setGlobal
void setGlobal(const std::string &valueName, const std::string &value)
Definition: cpp98/Federate.hpp:599
helicsFederateRequestNextStep
helics_time helicsFederateRequestNextStep(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:870
helicsFederateInfoSetTimeProperty
void helicsFederateInfoSetTimeProperty(helics_federate_info fi, int timeProperty, helics_time propertyValue, helics_error *err)
Definition: FederateExport.cpp:354
helicscpp::Federate::getTimeProperty
helics_time getTimeProperty(int tProperty) const
Definition: cpp98/Federate.hpp:274
helicsFederateLogInfoMessage
void helicsFederateLogInfoMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1225
helicsFederateRegisterGlobalFilter
helics_filter helicsFederateRegisterGlobalFilter(helics_federate fed, helics_filter_type type, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:79
helicscpp::FederateInfo::setCoreInit
void setCoreInit(const std::string &coreInit)
Definition: cpp98/Federate.hpp:88
helicscpp::Federate::getFilter
Filter getFilter(int index)
Definition: cpp98/Federate.hpp:589
helicscpp::Federate::logWarningMessage
void logWarningMessage(const std::string &message)
Definition: cpp98/Federate.hpp:637
helicscpp::FederateInfo::FederateInfo
FederateInfo(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:48
helicsFederateRegisterGlobalCloningFilter
helics_filter helicsFederateRegisterGlobalCloningFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:143
helicsFederateSetTimeProperty
void helicsFederateSetTimeProperty(helics_federate fed, int timeProperty, helics_time time, helics_error *err)
Definition: FederateExport.cpp:1028
helicscpp::Federate::query
std::string query(const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast) const
Definition: cpp98/Federate.hpp:501
helicsFederateLogErrorMessage
void helicsFederateLogErrorMessage(helics_federate fed, const char *logmessage, helics_error *err)
Definition: FederateExport.cpp:1215
helicscpp::Federate::~Federate
virtual ~Federate()
Definition: cpp98/Federate.hpp:219
helicsFederateFinalizeAsync
void helicsFederateFinalizeAsync(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:621
helics_sequencing_mode_fast
@ helics_sequencing_mode_fast
Definition: helics_enums.h:335
helicscpp::Federate::getCurrentTime
helics_time getCurrentTime()
Definition: cpp98/Federate.hpp:391
helicsFederateRequestTimeComplete
helics_time helicsFederateRequestTimeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:929
helicsFederateGetState
helics_federate_state helicsFederateGetState(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:1000
helicsFederateEnterExecutingMode
void helicsFederateEnterExecutingMode(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:720
helicsFederateEnterExecutingModeComplete
void helicsFederateEnterExecutingModeComplete(helics_federate fed, helics_error *err)
Definition: FederateExport.cpp:809
helicscpp::Federate::getIntegerProperty
int getIntegerProperty(int intProperty) const
Definition: cpp98/Federate.hpp:281
helicscpp::Federate::registerFilter
Filter registerFilter(helics_filter_type type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:539
helicsFederateEnterExecutingModeIterativeAsync
void helicsFederateEnterExecutingModeIterativeAsync(helics_federate fed, helics_iteration_request iterate, helics_error *err)
Definition: FederateExport.cpp:795
helicscpp::Filter
Definition: Filter.hpp:18
helicsFederateGetFilter
helics_filter helicsFederateGetFilter(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFiltersExport.cpp:187
helicscpp
Definition: cpp98/Broker.hpp:18
helicscpp::Federate::setSeparator
void setSeparator(char sep)
Definition: cpp98/Federate.hpp:292
helicsFederateInfoSetSeparator
void helicsFederateInfoSetSeparator(helics_federate_info fi, char separator, helics_error *err)
Definition: FederateExport.cpp:363
helicsCreateQuery
helics_query helicsCreateQuery(const char *target, const char *query)
Definition: helicsExport.cpp:906
helics_federate
void * helics_federate
Definition: api-data.h:56
helics_iteration_result
helics_iteration_result
Definition: api-data.h:109
helicsFederateRequestTimeIterativeComplete
helics_time helicsFederateRequestTimeIterativeComplete(helics_federate fed, helics_iteration_result *outIterate, helics_error *err)
Definition: FederateExport.cpp:962