helics  3.0.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 "Filter.hpp"
12 #include "config.hpp"
13 #include "helics/helics.h"
14 #include "helicsExceptions.hpp"
15 
16 #include <complex>
17 #include <string>
18 #include <vector>
19 
20 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
21 # include <functional>
22 # include <utility>
23 #endif
24 
25 namespace helicscpp {
27 class FederateInfo {
28  public:
33  explicit FederateInfo(const std::string& coretype)
34  {
37  }
40  explicit FederateInfo(int coretype)
41  {
44  }
46  FederateInfo(const FederateInfo& fedInfo)
47  {
48  fi = helicsFederateClone(fedInfo.fi, hThrowOnError());
49  }
52  {
55  fi = fi_new;
56  return *this;
57  }
58 #ifdef HELICS_HAS_RVALUE_REFS
59 
60  FederateInfo(FederateInfo&& fedInfo) HELICS_NOTHROW
61  {
62  fi = fedInfo.fi;
63  fedInfo.fi = HELICS_NULL_POINTER;
64  }
66  FederateInfo& operator=(FederateInfo&& fedInfo) HELICS_NOTHROW
67  {
69  fi = fedInfo.fi;
70  fedInfo.fi = HELICS_NULL_POINTER;
71  return *this;
72  }
73 #endif
74 
78  void setCoreName(const std::string& corename)
79  {
80  helicsFederateInfoSetCoreName(fi, corename.c_str(), HELICS_NULL_POINTER);
81  }
83  void setSeparator(char sep) { helicsFederateInfoSetSeparator(fi, sep, HELICS_NULL_POINTER); }
86  void setCoreInit(const std::string& coreInit)
87  {
88  helicsFederateInfoSetCoreInitString(fi, coreInit.c_str(), HELICS_NULL_POINTER);
89  }
91  void setBrokerInit(const std::string& brokerInit)
92  {
93  helicsFederateInfoSetBrokerInitString(fi, brokerInit.c_str(), HELICS_IGNORE_ERROR);
94  }
98  void setCoreType(const std::string& coretype)
99  {
101  }
105  void setCoreType(int coretype)
106  {
107  helicsFederateInfoSetCoreType(fi, coretype, HELICS_NULL_POINTER);
108  }
112  void setBroker(const std::string& broker)
113  {
114  helicsFederateInfoSetBroker(fi, broker.c_str(), HELICS_NULL_POINTER);
115  }
119  void setBrokerKey(const std::string& brokerkey)
120  {
121  helicsFederateInfoSetBrokerKey(fi, brokerkey.c_str(), HELICS_NULL_POINTER);
122  }
127  void setFlagOption(int flag, bool value = true)
128  {
130  flag,
131  value ? HELICS_TRUE : HELICS_FALSE,
132  HELICS_NULL_POINTER);
133  }
138  void setProperty(int timeProperty, HelicsTime timeValue)
139  {
140  helicsFederateInfoSetTimeProperty(fi, timeProperty, timeValue, HELICS_NULL_POINTER);
141  }
146  void setProperty(int integerProperty, int propertyValue)
147  {
149  integerProperty,
150  propertyValue,
151  HELICS_NULL_POINTER);
152  }
153  void sendCommand(const std::string& target, const std::string& cmd)
154  {
155  helicsFederateSendCommand(fi, target.c_str(), cmd.c_str(), HELICS_IGNORE_ERROR);
156  }
157 
158  const char* getCommand() { return helicsFederateGetCommand(fi, HELICS_IGNORE_ERROR); }
159 
160  const char* getCommandSource()
161  {
162  return helicsFederateGetCommandSource(fi, HELICS_IGNORE_ERROR);
163  }
165  HelicsFederateInfo getInfo() { return fi; }
166 
167  private:
168  HelicsFederateInfo fi;
169 };
170 
171 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
172 namespace details {
174  inline void helicCppQueryCallbackExecutor(const char* query,
175  int stringSize,
176  HelicsQueryBuffer buffer,
177  void* userData)
178  {
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);
182  helicsQueryBufferFill(buffer, result.c_str(), static_cast<int>(result.size()), nullptr);
183  }
184 } // namespace details
185 #endif
186 
188 typedef struct HelicsIterationTime {
192 
194 class Federate {
195  public:
197  Federate() HELICS_NOTHROW: fed(NULL), exec_async_iterate(false) {}
200  {
202  }
204  Federate& operator=(const Federate& fedObj)
205  {
208  return *this;
209  }
210 #ifdef HELICS_HAS_RVALUE_REFS
211 
212  Federate(Federate&& fedObj) HELICS_NOTHROW: exec_async_iterate(fedObj.exec_async_iterate)
213  {
214  fed = fedObj.fed;
215  fedObj.fed = HELICS_NULL_POINTER;
216  }
218  Federate& operator=(Federate&& fedObj) HELICS_NOTHROW
219  {
220  exec_async_iterate = fedObj.exec_async_iterate;
221  fed = fedObj.fed;
222  fedObj.fed = HELICS_NULL_POINTER;
223  return *this;
224  }
225 #endif
226 
227  virtual ~Federate()
228  {
229  if (fed != HELICS_NULL_POINTER) {
231  }
232 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
233  if (callbackBuffer != nullptr) {
234  auto cback =
235  reinterpret_cast<std::function<std::string(const std::string&)>*>(callbackBuffer);
236  delete cback;
237  }
238 #endif
239  }
241  operator HelicsFederate() const { return fed; }
243  HelicsFederate baseObject() const { return fed; }
248  void setFlagOption(int flag, bool flagValue = true)
249  {
251  flag,
252  flagValue ? HELICS_TRUE : HELICS_FALSE,
253  hThrowOnError());
254  }
259  void setProperty(int tProperty, HelicsTime timeValue)
260  {
261  helicsFederateSetTimeProperty(fed, tProperty, timeValue, hThrowOnError());
262  }
267  void setProperty(int intProperty, int value)
268  {
269  helicsFederateSetIntegerProperty(fed, intProperty, value, hThrowOnError());
270  }
271 
275  bool getFlagOption(int flag) const
276  {
278  }
282  HelicsTime getTimeProperty(int tProperty) const
283  {
284  return helicsFederateGetTimeProperty(fed, tProperty, hThrowOnError());
285  }
289  int getIntegerProperty(int intProperty) const
290  {
291  return helicsFederateGetIntegerProperty(fed, intProperty, hThrowOnError());
292  }
300  void setSeparator(char sep) { helicsFederateSetSeparator(fed, sep, HELICS_NULL_POINTER); }
306  void registerInterfaces(const std::string& configString)
307  {
308  helicsFederateRegisterInterfaces(fed, configString.c_str(), hThrowOnError());
309  }
312  {
313  return helicsFederateGetState(fed, HELICS_NULL_POINTER);
314  }
324  {
326  }
332  {
333  // returns int, 1 = true, 0 = false
334  return helicsFederateIsAsyncOperationCompleted(fed, HELICS_NULL_POINTER) > 0;
335  }
340  {
342  }
349  {
351  if (iterate == HELICS_ITERATION_REQUEST_NO_ITERATION) {
353  } else {
355  }
356  return out_iterate;
357  }
365  {
366  if (iterate == HELICS_ITERATION_REQUEST_NO_ITERATION) {
368  exec_async_iterate = false;
369  } else {
371  exec_async_iterate = true;
372  }
373  }
374 
380  {
382  if (exec_async_iterate) {
384  } else {
386  }
387  return out_iterate;
388  }
404  {
406  }
410 
415  {
416  return helicsFederateRequestTimeAdvance(fed, timeDelta, hThrowOnError());
417  }
423  {
424  HelicsIterationTime itTime;
426  fed, time, iterate, &(itTime.status), hThrowOnError());
427  return itTime;
428  }
434  {
436  }
437 
445  {
447  }
448 
452  {
454  }
455 
460  {
461  HelicsIterationTime itTime;
462  itTime.grantedTime =
464  return itTime;
465  }
467  const char* getName() const { return helicsFederateGetName(fed); }
468 
482  std::string query(const std::string& target,
483  const std::string& queryStr,
485  {
486  // returns HelicsQuery
487  HelicsQuery q = helicsCreateQuery(target.c_str(), queryStr.c_str());
488  if (mode != HELICS_SEQUENCING_MODE_FAST) {
489  helicsQuerySetOrdering(q, mode, HELICS_IGNORE_ERROR);
490  }
491  std::string result(helicsQueryExecute(q, fed, hThrowOnError()));
492  helicsQueryFree(q);
493  return result;
494  }
495 
509  std::string query(const std::string& queryStr,
511  {
512  // returns HelicsQuery
513  HelicsQuery q = helicsCreateQuery(HELICS_NULL_POINTER, queryStr.c_str());
514  if (mode != HELICS_SEQUENCING_MODE_FAST) {
515  helicsQuerySetOrdering(q, mode, HELICS_IGNORE_ERROR);
516  }
517  std::string result(helicsQueryExecute(q, fed, hThrowOnError()));
518  helicsQueryFree(q);
519  return result;
520  }
521 
522  void setQueryCallback(
523  void (*queryAnswer)(const char* query, int querySize, HelicsQueryBuffer, void* userdata),
524  void* userdata)
525 
526  {
527  helicsFederateSetQueryCallback(fed, queryAnswer, userdata, hThrowOnError());
528  }
529 
530 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
531  void setQueryCallback(std::function<std::string(const std::string&)> callback)
532 
533  {
534  callbackBuffer = new std::function<std::string(const std::string&)>(std::move(callback));
536  details::helicCppQueryCallbackExecutor,
537  callbackBuffer,
538  hThrowOnError());
539  }
540 
541 #endif
542 
547  Filter registerFilter(HelicsFilterTypes type, const std::string& filterName = std::string())
548  {
549  return Filter(helicsFederateRegisterFilter(fed, type, filterName.c_str(), hThrowOnError()));
550  }
551 
558  CloningFilter registerCloningFilter(const std::string& deliveryEndpoint)
559  {
560  return CloningFilter(
561  helicsFederateRegisterCloningFilter(fed, deliveryEndpoint.c_str(), hThrowOnError()));
562  }
569  const std::string& filterName = std::string())
570  {
571  return Filter(
572  helicsFederateRegisterGlobalFilter(fed, type, filterName.c_str(), hThrowOnError()));
573  }
574 
581  CloningFilter registerGlobalCloningFilter(const std::string& deliveryEndpoint)
582  {
584  deliveryEndpoint.c_str(),
585  hThrowOnError()));
586  }
590  Filter getFilter(const std::string& filterName)
591  {
592  return Filter(helicsFederateGetFilter(fed, filterName.c_str(), hThrowOnError()));
593  }
597  Filter getFilter(int index)
598  {
600  }
601 
607  void setGlobal(const std::string& valueName, const std::string& value)
608  {
609  helicsFederateSetGlobal(fed, valueName.c_str(), value.c_str(), hThrowOnError());
610  }
611 
617  void setTag(const std::string& tag, const std::string& value)
618  {
619  helicsFederateSetTag(fed, tag.c_str(), value.c_str(), hThrowOnError());
620  }
627  const char* getTag(const std::string& tag) const
628  {
629  return helicsFederateGetTag(fed, tag.c_str(), hThrowOnError());
630  }
631 
636  void addDependency(const std::string& fedName)
637  {
638  helicsFederateAddDependency(fed, fedName.c_str(), hThrowOnError());
639  }
640 
645  void localError(int errorCode, const std::string& errorString)
646  {
647  helicsFederateLocalError(fed, errorCode, errorString.c_str(), hThrowOnError());
648  }
649 
654  void globalError(int errorCode, const std::string& errorString)
655  {
656  helicsFederateGlobalError(fed, errorCode, errorString.c_str(), hThrowOnError());
657  }
658 
660  void logErrorMessage(const std::string& message)
661  {
662  helicsFederateLogErrorMessage(fed, message.c_str(), hThrowOnError());
663  }
665  void logWarningMessage(const std::string& message)
666  {
668  }
670  void logInfoMessage(const std::string& message)
671  {
672  helicsFederateLogInfoMessage(fed, message.c_str(), hThrowOnError());
673  }
675  void logDebugMessage(const std::string& message)
676  {
677  helicsFederateLogDebugMessage(fed, message.c_str(), hThrowOnError());
678  }
680  void logMessage(int level, const std::string& message)
681  {
682  helicsFederateLogLevelMessage(fed, level, message.c_str(), hThrowOnError());
683  }
687  HelicsFederate getObject() const { return fed; }
688 
689  protected:
692 #if defined(HELICS_HAS_FUNCTIONAL) && HELICS_HAS_FUNCTIONAL != 0
693  private:
694  void* callbackBuffer{nullptr};
695 #endif
696 };
697 
698 } // namespace helicscpp
699 
700 #endif
helicsFederateGetFilterByIndex
HelicsFilter helicsFederateGetFilterByIndex(HelicsFederate fed, int index, HelicsError *err)
Definition: MessageFiltersExport.cpp:224
helicsFederateSetTag
void helicsFederateSetTag(HelicsFederate fed, const char *tagName, const char *value, HelicsError *err)
Definition: FederateExport.cpp:1190
helicscpp::FederateInfo::setCoreType
void setCoreType(int coretype)
Definition: cpp98/Federate.hpp:105
helicscpp::Federate::finalizeComplete
void finalizeComplete()
Definition: cpp98/Federate.hpp:397
helicsFederateSetGlobal
void helicsFederateSetGlobal(HelicsFederate fed, const char *valueName, const char *value, HelicsError *err)
Definition: FederateExport.cpp:1169
HelicsTime
double HelicsTime
Definition: api-data.h:90
helicscpp::Federate::getObject
HelicsFederate getObject() const
Definition: cpp98/Federate.hpp:687
helicscpp::Federate::logMessage
void logMessage(int level, const std::string &message)
Definition: cpp98/Federate.hpp:680
HELICS_FALSE
const HelicsBool HELICS_FALSE
Definition: api-data.h:105
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:91
helicscpp::Federate::enterInitializingModeAsync
void enterInitializingModeAsync()
Definition: cpp98/Federate.hpp:323
helicsFederateSetFlagOption
void helicsFederateSetFlagOption(HelicsFederate fed, int flag, HelicsBool flagValue, HelicsError *err)
Definition: FederateExport.cpp:1063
helicsFederateRegisterGlobalCloningFilter
HelicsFilter helicsFederateRegisterGlobalCloningFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:143
helicscpp::Federate::finalize
void finalize()
Definition: cpp98/Federate.hpp:392
helicsFederateGetCurrentTime
HelicsTime helicsFederateGetCurrentTime(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1158
helicscpp::HelicsIterationTime
Definition: cpp98/Federate.hpp:188
helicscpp::Federate::exec_async_iterate
bool exec_async_iterate
indicator that the federate is in an async operation
Definition: cpp98/Federate.hpp:691
HELICS_TRUE
const HelicsBool HELICS_TRUE
Definition: api-data.h:104
helicsFederateInfoSetBroker
void helicsFederateInfoSetBroker(HelicsFederateInfo fi, const char *broker, HelicsError *err)
Definition: FederateExport.cpp:267
helicscpp::Federate::logErrorMessage
void logErrorMessage(const std::string &message)
Definition: cpp98/Federate.hpp:660
helicscpp::Federate::getTag
const char * getTag(const std::string &tag) const
Definition: cpp98/Federate.hpp:627
helicscpp::Federate::registerGlobalFilter
Filter registerGlobalFilter(HelicsFilterTypes type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:568
helicsFederateRequestTimeComplete
HelicsTime helicsFederateRequestTimeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:953
helicsFederateRequestTimeAdvance
HelicsTime helicsFederateRequestTimeAdvance(HelicsFederate fed, HelicsTime timeDelta, HelicsError *err)
Definition: FederateExport.cpp:878
helicscpp::Federate::logInfoMessage
void logInfoMessage(const std::string &message)
Definition: cpp98/Federate.hpp:670
helicsFederateEnterExecutingModeAsync
void helicsFederateEnterExecutingModeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:805
helicscpp::Federate::enterExecutingModeAsync
void enterExecutingModeAsync(HelicsIterationRequest iterate=HELICS_ITERATION_REQUEST_NO_ITERATION)
Definition: cpp98/Federate.hpp:363
helicsQuerySetOrdering
void helicsQuerySetOrdering(HelicsQuery query, int32_t mode, HelicsError *err)
Definition: helicsExport.cpp:1090
helicscpp::Federate::requestTimeIterativeAsync
void requestTimeIterativeAsync(HelicsTime time, HelicsIterationRequest iterate)
Definition: cpp98/Federate.hpp:444
helicscpp::Federate::finalizeAsync
void finalizeAsync()
Definition: cpp98/Federate.hpp:395
helicscpp::CloningFilter
Definition: Filter.hpp:106
helicscpp::Federate::localError
void localError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:645
helicscpp::HelicsIterationTime::grantedTime
HelicsTime grantedTime
the time of the granted step
Definition: cpp98/Federate.hpp:189
helicscpp::Federate::getTimeProperty
HelicsTime getTimeProperty(int tProperty) const
Definition: cpp98/Federate.hpp:282
helicscpp::FederateInfo::getInfo
HelicsFederateInfo getInfo()
Definition: cpp98/Federate.hpp:165
helicsFederateEnterExecutingModeIterative
HelicsIterationResult helicsFederateEnterExecutingModeIterative(HelicsFederate fed, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:789
helicsFederateAddDependency
void helicsFederateAddDependency(HelicsFederate fed, const char *fedName, HelicsError *err)
Definition: FederateExport.cpp:1233
helicsFederateEnterExecutingMode
void helicsFederateEnterExecutingMode(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:744
helicsFederateEnterExecutingModeIterativeAsync
void helicsFederateEnterExecutingModeIterativeAsync(HelicsFederate fed, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:819
helicsFederateLocalError
void helicsFederateLocalError(HelicsFederate fed, int errorCode, const char *errorString, HelicsError *err)
Definition: FederateExport.cpp:613
HelicsFederate
void * HelicsFederate
Definition: api-data.h:60
helicsFederateIsAsyncOperationCompleted
HelicsBool helicsFederateIsAsyncOperationCompleted(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:721
helicsQueryBufferFill
void helicsQueryBufferFill(HelicsQueryBuffer buffer, const char *str, int strSize, HelicsError *err)
Definition: helicsCallbacks.cpp:125
helicsFederateRegisterInterfaces
void helicsFederateRegisterInterfaces(HelicsFederate fed, const char *file, HelicsError *err)
Definition: FederateExport.cpp:579
helicscpp::Federate::isAsyncOperationCompleted
bool isAsyncOperationCompleted() const
Definition: cpp98/Federate.hpp:331
helicscpp::Federate::requestTimeIterativeComplete
HelicsIterationTime requestTimeIterativeComplete()
Definition: cpp98/Federate.hpp:459
helicsFederateFinalize
void helicsFederateFinalize(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:629
helicsFederateSendCommand
void helicsFederateSendCommand(HelicsFederate fed, const char *target, const char *command, HelicsError *err)
Definition: FederateExport.cpp:1308
HelicsQueryBuffer
void * HelicsQueryBuffer
Definition: api-data.h:78
helicscpp::Federate
Definition: cpp98/Federate.hpp:194
helicsFederateSetSeparator
void helicsFederateSetSeparator(HelicsFederate fed, char separator, HelicsError *err)
Definition: FederateExport.cpp:1149
helicscpp::FederateInfo::setBrokerKey
void setBrokerKey(const std::string &brokerkey)
Definition: cpp98/Federate.hpp:119
helicsQueryExecute
const char * helicsQueryExecute(HelicsQuery query, HelicsFederate fed, HelicsError *err)
Definition: helicsExport.cpp:953
helicscpp::FederateInfo::setCoreType
void setCoreType(const std::string &coretype)
Definition: cpp98/Federate.hpp:98
helicsFederateClone
HelicsFederate helicsFederateClone(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:541
helicscpp::Federate::getCurrentMode
HelicsFederateState getCurrentMode() const
Definition: cpp98/Federate.hpp:311
helicsFederateEnterExecutingModeComplete
void helicsFederateEnterExecutingModeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:833
helicscpp::FederateInfo
Definition: cpp98/Federate.hpp:27
helicsQueryFree
void helicsQueryFree(HelicsQuery query)
Definition: helicsExport.cpp:1099
helicsFederateGlobalError
void helicsFederateGlobalError(HelicsFederate fed, int errorCode, const char *errorString, HelicsError *err)
Definition: FederateExport.cpp:597
helicsFederateLogWarningMessage
void helicsFederateLogWarningMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1284
helicsFederateGetState
HelicsFederateState helicsFederateGetState(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1021
helicsFederateGetCommand
const char * helicsFederateGetCommand(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1317
helicscpp::Federate::setProperty
void setProperty(int intProperty, int value)
Definition: cpp98/Federate.hpp:267
helicsFederateRequestTime
HelicsTime helicsFederateRequestTime(HelicsFederate fed, HelicsTime requestTime, HelicsError *err)
Definition: FederateExport.cpp:862
helicscpp::Federate::globalError
void globalError(int errorCode, const std::string &errorString)
Definition: cpp98/Federate.hpp:654
helicscpp::FederateInfo::setCoreName
void setCoreName(const std::string &corename)
Definition: cpp98/Federate.hpp:78
helicsFederateSetIntegerProperty
void helicsFederateSetIntegerProperty(HelicsFederate fed, int intProperty, int propertyVal, HelicsError *err)
Definition: FederateExport.cpp:1079
helicscpp::Federate::requestTimeComplete
HelicsTime requestTimeComplete()
Definition: cpp98/Federate.hpp:451
helicscpp::Federate::enterExecutingMode
HelicsIterationResult enterExecutingMode(HelicsIterationRequest iterate=HELICS_ITERATION_REQUEST_NO_ITERATION)
Definition: cpp98/Federate.hpp:348
helicsFederateSetQueryCallback
void helicsFederateSetQueryCallback(HelicsFederate fed, void(*queryAnswer)(const char *query, int querySize, HelicsQueryBuffer buffer, void *userdata), void *userdata, HelicsError *err)
Definition: helicsCallbacks.cpp:98
helicscpp::FederateInfo::~FederateInfo
~FederateInfo()
Definition: cpp98/Federate.hpp:75
helicscpp::FederateInfo::FederateInfo
FederateInfo(int coretype)
Definition: cpp98/Federate.hpp:40
helicsFederateSetTimeProperty
void helicsFederateSetTimeProperty(HelicsFederate fed, int timeProperty, HelicsTime time, HelicsError *err)
Definition: FederateExport.cpp:1049
helicsFederateInfoSetTimeProperty
void helicsFederateInfoSetTimeProperty(HelicsFederateInfo fi, int timeProperty, HelicsTime propertyValue, HelicsError *err)
Definition: FederateExport.cpp:376
helicscpp::Federate::query
std::string query(const std::string &target, const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST) const
Definition: cpp98/Federate.hpp:482
helicscpp::Federate::registerInterfaces
void registerInterfaces(const std::string &configString)
Definition: cpp98/Federate.hpp:306
helicsFederateRequestNextStep
HelicsTime helicsFederateRequestNextStep(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:894
helicsCreateFederateInfo
HelicsFederateInfo helicsCreateFederateInfo(void)
Definition: FederateExport.cpp:129
helicscpp::FederateInfo::setFlagOption
void setFlagOption(int flag, bool value=true)
Definition: cpp98/Federate.hpp:127
HelicsFederateInfo
void * HelicsFederateInfo
Definition: api-data.h:66
helicsFederateGetName
const char * helicsFederateGetName(HelicsFederate fed)
Definition: FederateExport.cpp:1039
helicscpp::FederateInfo::setBroker
void setBroker(const std::string &broker)
Definition: cpp98/Federate.hpp:112
helicscpp::Federate::getFilter
Filter getFilter(const std::string &filterName)
Definition: cpp98/Federate.hpp:590
helicsFederateInfoFree
void helicsFederateInfoFree(HelicsFederateInfo fi)
Definition: FederateExport.cpp:165
helicscpp::Federate::logDebugMessage
void logDebugMessage(const std::string &message)
Definition: cpp98/Federate.hpp:675
helicscpp::Federate::requestTimeIterative
HelicsIterationTime requestTimeIterative(HelicsTime time, HelicsIterationRequest iterate)
Definition: cpp98/Federate.hpp:422
helicscpp::Federate::operator=
Federate & operator=(const Federate &fedObj)
Copy assignment operator.
Definition: cpp98/Federate.hpp:204
helicsFederateInfoSetFlagOption
void helicsFederateInfoSetFlagOption(HelicsFederateInfo fi, int flag, HelicsBool value, HelicsError *err)
Definition: FederateExport.cpp:353
helicscpp::Federate::baseObject
HelicsFederate baseObject() const
Definition: cpp98/Federate.hpp:243
helicscpp::Federate::addDependency
void addDependency(const std::string &fedName)
Definition: cpp98/Federate.hpp:636
helicsFederateGetFilter
HelicsFilter helicsFederateGetFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:187
helicsFederateEnterInitializingModeAsync
void helicsFederateEnterInitializingModeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:707
helicscpp::Federate::Federate
Federate(const Federate &fedObj)
Copy constructor.
Definition: cpp98/Federate.hpp:199
helicscpp::Federate::getFlagOption
bool getFlagOption(int flag) const
Definition: cpp98/Federate.hpp:275
helicscpp::FederateInfo::operator=
FederateInfo & operator=(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:51
helicsFederateInfoSetCoreInitString
void helicsFederateInfoSetCoreInitString(HelicsFederateInfo fi, const char *coreInit, HelicsError *err)
Definition: FederateExport.cpp:209
helicscpp::Federate::enterInitializingMode
void enterInitializingMode()
Definition: cpp98/Federate.hpp:318
helicsFederateInfoSetCoreName
void helicsFederateInfoSetCoreName(HelicsFederateInfo fi, const char *corename, HelicsError *err)
Definition: FederateExport.cpp:195
helicsFederateGetIntegerProperty
int helicsFederateGetIntegerProperty(HelicsFederate fed, int intProperty, HelicsError *err)
Definition: FederateExport.cpp:1132
helicsFederateRequestTimeIterative
HelicsTime helicsFederateRequestTimeIterative(HelicsFederate fed, HelicsTime requestTime, HelicsIterationRequest iterate, HelicsIterationResult *outIteration, HelicsError *err)
Definition: FederateExport.cpp:910
helicscpp::hThrowOnError
Definition: helicsExceptions.hpp:38
helicsFederateLogDebugMessage
void helicsFederateLogDebugMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1294
helicscpp::FederateInfo::FederateInfo
FederateInfo()
Definition: cpp98/Federate.hpp:30
helicsFederateLogInfoMessage
void helicsFederateLogInfoMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1289
helicscpp::Federate::query
std::string query(const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST) const
Definition: cpp98/Federate.hpp:509
helicscpp::FederateInfo::FederateInfo
FederateInfo(const std::string &coretype)
Definition: cpp98/Federate.hpp:33
HelicsSequencingModes
HelicsSequencingModes
Definition: helics_enums.h:363
helicsFederateLogLevelMessage
void helicsFederateLogLevelMessage(HelicsFederate fed, int loglevel, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1299
helicscpp::Federate::getName
const char * getName() const
Definition: cpp98/Federate.hpp:467
helicsFederateInfoSetCoreTypeFromString
void helicsFederateInfoSetCoreTypeFromString(HelicsFederateInfo fi, const char *coretype, HelicsError *err)
Definition: FederateExport.cpp:246
helicsFederateGetCommandSource
const char * helicsFederateGetCommandSource(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:1332
helicscpp::Federate::setFlagOption
void setFlagOption(int flag, bool flagValue=true)
Definition: cpp98/Federate.hpp:248
helicscpp::Federate::enterExecutingModeComplete
HelicsIterationResult enterExecutingModeComplete()
Definition: cpp98/Federate.hpp:379
helicscpp::Federate::Federate
Federate() HELICS_NOTHROW
Default constructor.
Definition: cpp98/Federate.hpp:197
HelicsFilterTypes
HelicsFilterTypes
Definition: helics_enums.h:339
helicscpp::Federate::registerGlobalCloningFilter
CloningFilter registerGlobalCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:581
helicscpp::Federate::registerCloningFilter
CloningFilter registerCloningFilter(const std::string &deliveryEndpoint)
Definition: cpp98/Federate.hpp:558
helicsFederateFinalizeComplete
void helicsFederateFinalizeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:639
helicscpp::FederateInfo::setSeparator
void setSeparator(char sep)
Set the separator character.
Definition: cpp98/Federate.hpp:83
helicscpp::Federate::enterInitializingModeComplete
void enterInitializingModeComplete()
Definition: cpp98/Federate.hpp:339
helicsFederateGetTag
const char * helicsFederateGetTag(HelicsFederate fed, const char *tagName, HelicsError *err)
Definition: FederateExport.cpp:1210
helicscpp::Federate::getCore
HelicsCore getCore()
Definition: cpp98/Federate.hpp:685
HelicsFederateState
HelicsFederateState
Definition: api-data.h:129
HELICS_ITERATION_REQUEST_NO_ITERATION
@ HELICS_ITERATION_REQUEST_NO_ITERATION
Definition: api-data.h:111
helicscpp::FederateInfo::setProperty
void setProperty(int integerProperty, int propertyValue)
Definition: cpp98/Federate.hpp:146
helicscpp::Federate::requestTime
HelicsTime requestTime(HelicsTime time)
Definition: cpp98/Federate.hpp:403
HelicsIterationResult
HelicsIterationResult
Definition: api-data.h:119
helicscpp::Federate::setProperty
void setProperty(int tProperty, HelicsTime timeValue)
Definition: cpp98/Federate.hpp:259
helicscpp::Federate::setGlobal
void setGlobal(const std::string &valueName, const std::string &value)
Definition: cpp98/Federate.hpp:607
helicscpp::HelicsIterationTime
struct helicscpp::HelicsIterationTime HelicsIterationTime
HELICS_SEQUENCING_MODE_FAST
@ HELICS_SEQUENCING_MODE_FAST
Definition: helics_enums.h:365
helicscpp::Federate::requestTimeAsync
void requestTimeAsync(HelicsTime time)
Definition: cpp98/Federate.hpp:433
helicsFederateGetFlagOption
HelicsBool helicsFederateGetFlagOption(HelicsFederate fed, int flag, HelicsError *err)
Definition: FederateExport.cpp:1114
helicscpp::Federate::fed
HelicsFederate fed
underlying HelicsFederate object
Definition: cpp98/Federate.hpp:690
HelicsCore
void * HelicsCore
Definition: api-data.h:49
helicscpp::FederateInfo::setProperty
void setProperty(int timeProperty, HelicsTime timeValue)
Definition: cpp98/Federate.hpp:138
helicscpp::HelicsIterationTime::status
HelicsIterationResult status
the convergence state
Definition: cpp98/Federate.hpp:190
helicscpp::FederateInfo::setCoreInit
void setCoreInit(const std::string &coreInit)
Definition: cpp98/Federate.hpp:86
helicsFederateRequestTimeIterativeComplete
HelicsTime helicsFederateRequestTimeIterativeComplete(HelicsFederate fed, HelicsIterationResult *outIterate, HelicsError *err)
Definition: FederateExport.cpp:983
helicscpp::Federate::getFilter
Filter getFilter(int index)
Definition: cpp98/Federate.hpp:597
helicsFederateFinalizeAsync
void helicsFederateFinalizeAsync(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:634
helicsFederateInfoSetBrokerKey
void helicsFederateInfoSetBrokerKey(HelicsFederateInfo fi, const char *brokerkey, HelicsError *err)
Definition: FederateExport.cpp:281
helicsFederateFree
void helicsFederateFree(HelicsFederate fed)
Definition: helicsExport.cpp:873
helicscpp::Federate::requestTimeAdvance
HelicsTime requestTimeAdvance(HelicsTime timeDelta)
Definition: cpp98/Federate.hpp:414
helicsFederateRequestTimeAsync
void helicsFederateRequestTimeAsync(HelicsFederate fed, HelicsTime requestTime, HelicsError *err)
Definition: FederateExport.cpp:939
helicsFederateInfoSetBrokerInitString
void helicsFederateInfoSetBrokerInitString(HelicsFederateInfo fi, const char *brokerInit, HelicsError *err)
Definition: FederateExport.cpp:223
helicscpp::Federate::logWarningMessage
void logWarningMessage(const std::string &message)
Definition: cpp98/Federate.hpp:665
helicscpp::FederateInfo::FederateInfo
FederateInfo(const FederateInfo &fedInfo)
Definition: cpp98/Federate.hpp:46
helicsFederateEnterInitializingMode
void helicsFederateEnterInitializingMode(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:693
helicsFederateGetTimeProperty
HelicsTime helicsFederateGetTimeProperty(HelicsFederate fed, int timeProperty, HelicsError *err)
Definition: FederateExport.cpp:1095
helicsFederateInfoSetIntegerProperty
void helicsFederateInfoSetIntegerProperty(HelicsFederateInfo fi, int intProperty, int propertyValue, HelicsError *err)
Definition: FederateExport.cpp:394
helicsFederateRegisterGlobalFilter
HelicsFilter helicsFederateRegisterGlobalFilter(HelicsFederate fed, HelicsFilterTypes type, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:79
helicsCreateQuery
HelicsQuery helicsCreateQuery(const char *target, const char *query)
Definition: helicsExport.cpp:942
helicsFederateEnterInitializingModeComplete
void helicsFederateEnterInitializingModeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:730
HELICS_ITERATION_RESULT_NEXT_STEP
@ HELICS_ITERATION_RESULT_NEXT_STEP
Definition: api-data.h:120
helicscpp::Federate::~Federate
virtual ~Federate()
Definition: cpp98/Federate.hpp:227
helicsFederateLogErrorMessage
void helicsFederateLogErrorMessage(HelicsFederate fed, const char *logmessage, HelicsError *err)
Definition: FederateExport.cpp:1279
HelicsQuery
void * HelicsQuery
Definition: api-data.h:72
helicscpp::Federate::getCurrentTime
HelicsTime getCurrentTime()
Definition: cpp98/Federate.hpp:399
helicsFederateRegisterFilter
HelicsFilter helicsFederateRegisterFilter(HelicsFederate fed, HelicsFilterTypes type, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:58
helicsFederateRegisterCloningFilter
HelicsFilter helicsFederateRegisterCloningFilter(HelicsFederate fed, const char *name, HelicsError *err)
Definition: MessageFiltersExport.cpp:123
helicscpp::Federate::setTag
void setTag(const std::string &tag, const std::string &value)
Definition: cpp98/Federate.hpp:617
helicsFederateEnterExecutingModeIterativeComplete
HelicsIterationResult helicsFederateEnterExecutingModeIterativeComplete(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:846
helicsFederateInfoSetSeparator
void helicsFederateInfoSetSeparator(HelicsFederateInfo fi, char separator, HelicsError *err)
Definition: FederateExport.cpp:385
helicscpp::Federate::getIntegerProperty
int getIntegerProperty(int intProperty) const
Definition: cpp98/Federate.hpp:289
helicscpp::Filter
Definition: Filter.hpp:18
helicsFederateGetCore
HelicsCore helicsFederateGetCore(HelicsFederate fed, HelicsError *err)
Definition: FederateExport.cpp:563
helicscpp::Federate::registerFilter
Filter registerFilter(HelicsFilterTypes type, const std::string &filterName=std::string())
Definition: cpp98/Federate.hpp:547
helicscpp
Definition: cpp98/Broker.hpp:18
helicscpp::Federate::setSeparator
void setSeparator(char sep)
Definition: cpp98/Federate.hpp:300
helicscpp::Federate::requestNextStep
HelicsTime requestNextStep()
Definition: cpp98/Federate.hpp:409
HelicsIterationRequest
HelicsIterationRequest
Definition: api-data.h:110
helicsFederateInfoSetCoreType
void helicsFederateInfoSetCoreType(HelicsFederateInfo fi, int coretype, HelicsError *err)
Definition: FederateExport.cpp:237
helicsFederateRequestTimeIterativeAsync
void helicsFederateRequestTimeIterativeAsync(HelicsFederate fed, HelicsTime requestTime, HelicsIterationRequest iterate, HelicsError *err)
Definition: FederateExport.cpp:969