helics  2.8.1
application_api/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 #pragma once
8 #include "../core/federate_id.hpp"
9 #include "../core/helics-time.hpp"
10 #include "../helics_enums.h"
11 #include "FederateInfo.hpp"
12 #include "helics/helics-config.h"
13 #include "helicsTypes.hpp"
14 #include "helics_cxx_export.h"
15 
16 #include <atomic>
17 #include <functional>
18 #include <memory>
19 #include <mutex>
20 #include <stdexcept>
21 #include <string>
22 
23 namespace gmlc {
24 namespace libguarded {
25  template<class T, class M>
27 } // namespace libguarded
28 } // namespace gmlc
29 
33 namespace helics {
34 class Core;
35 class CoreApp;
36 class AsyncFedCallInfo;
37 class MessageOperator;
38 class FilterFederateManager;
39 class Filter;
40 class CloningFilter;
41 
44 class HELICS_CXX_EXPORT Federate {
45  public:
47  enum class modes : char {
48  startup = 0,
49  initializing = 1,
50  executing = 2,
51  finalize =
52  3,
53  error = 4,
54  // the following states are for asynchronous operations
55  pending_init = 5,
56  pending_exec = 6,
57  pending_time = 7,
58  pending_iterative_time =
59  8,
60  pending_finalize = 9,
61  finished = 10
62  };
63 
64  protected:
65  std::atomic<modes> currentMode{modes::startup};
66  char nameSegmentSeparator = '/';
67 
68  bool strictConfigChecking{true};
70  bool useJsonSerialization{false};
71 
72  private:
73  local_federate_id fedID;
74  protected:
75  std::shared_ptr<Core> coreObject;
76  Time currentTime = Time::minVal();
77  private:
78  std::unique_ptr<gmlc::libguarded::shared_guarded<AsyncFedCallInfo, std::mutex>>
79  asyncCallInfo;
80  std::unique_ptr<FilterFederateManager> fManager;
81  std::string name;
82 
83  public:
88  Federate(const std::string& fedname, const FederateInfo& fi);
94  Federate(const std::string& fedname,
95  const std::shared_ptr<Core>& core,
96  const FederateInfo& fi = FederateInfo{});
97 
103  Federate(const std::string& fedname, CoreApp& core, const FederateInfo& fi = FederateInfo{});
107  explicit Federate(const std::string& configString);
113  Federate(const std::string& fedname, const std::string& configString);
115  Federate() noexcept;
117  Federate(Federate&& fed) noexcept;
119  Federate(const Federate& fed) = delete;
121  virtual ~Federate();
123  Federate& operator=(Federate&& fed) noexcept;
125  Federate& operator=(const Federate& fed) = delete;
129  void enterInitializingMode();
130 
135  void enterInitializingModeAsync();
140  bool isAsyncOperationCompleted() const;
144  void enterInitializingModeComplete();
150  enterExecutingMode(iteration_request iterate = iteration_request::no_iterations);
156  void enterExecutingModeAsync(iteration_request iterate = iteration_request::no_iterations);
161  iteration_result enterExecutingModeComplete();
165  void finalize();
168  void finalizeAsync();
170  void finalizeComplete();
171 
174  virtual void disconnect();
179  [[deprecated("please use localError method")]] void error(int errorcode);
180 
186  [[deprecated("please use localError method")]] void error(int errorcode,
187  const std::string& message);
188 
193  void localError(int errorcode, const std::string& message);
194 
200  void globalError(int errorcode, const std::string& message);
201 
205  void localError(int errorcode);
206 
210  void globalError(int errorcode);
211 
219  void setSeparator(char separator) { nameSegmentSeparator = separator; }
223  Time requestTime(Time nextInternalTimeStep);
224 
227  Time requestNextStep() { return requestTime(timeZero); }
228 
232  Time requestTimeAdvance(Time timeDelta) { return requestTime(currentTime + timeDelta); }
233 
238  iteration_time requestTimeIterative(Time nextInternalTimeStep, iteration_request iterate);
239 
244  void requestTimeAsync(Time nextInternalTimeStep);
245 
252  void requestTimeIterativeAsync(Time nextInternalTimeStep, iteration_request iterate);
253 
256  Time requestTimeComplete();
257 
261  iteration_time requestTimeIterativeComplete();
262 
267  void setProperty(int32_t option, double timeValue);
268 
273  void setProperty(int32_t option, Time timeValue);
274 
279  virtual void setFlagOption(int flag, bool flagValue = true);
284  void setProperty(int32_t option, int32_t optionValue);
285 
289  Time getTimeProperty(int32_t option) const;
290 
294  virtual bool getFlagOption(int flag) const;
298  int getIntegerProperty(int32_t option) const;
299 
306  void setLoggingCallback(
307  const std::function<void(int, const std::string&, const std::string&)>& logFunction);
308 
322  std::string query(const std::string& target,
323  const std::string& queryStr,
325 
338  std::string query(const std::string& queryStr,
340 
352  query_id_t queryAsync(const std::string& target,
353  const std::string& queryStr,
355 
363  query_id_t queryAsync(const std::string& queryStr,
365 
375  std::string queryComplete(query_id_t queryIndex);
376 
380  bool isQueryCompleted(query_id_t queryIndex) const;
381 
390  void setQueryCallback(const std::function<std::string(const std::string&)>& queryFunction);
391 
397  void setGlobal(const std::string& valueName, const std::string& value);
398 
403  void addDependency(const std::string& fedName);
404 
410  Filter& registerGlobalFilter(const std::string& filterName,
411  const std::string& inputType = std::string(),
412  const std::string& outputType = std::string());
413 
420  CloningFilter& registerGlobalCloningFilter(const std::string& filterName,
421  const std::string& inputType = std::string(),
422  const std::string& outputType = std::string());
423 
430  Filter& registerFilter(const std::string& filterName,
431  const std::string& inputType = std::string(),
432  const std::string& outputType = std::string());
433 
442  CloningFilter& registerCloningFilter(const std::string& filterName,
443  const std::string& inputType = std::string(),
444  const std::string& outputType = std::string());
445 
449  {
450  return registerGlobalFilter(std::string(), std::string(), std::string());
451  }
452 
456  {
457  return registerGlobalCloningFilter(std::string(), std::string(), std::string());
458  }
459 
464  void addSourceTarget(const Filter& filt, const std::string& targetEndpoint);
469  void addDestinationTarget(const Filter& filt, const std::string& targetEndpoint);
470 
475  const std::string& getInterfaceName(interface_handle handle) const;
476 
480  const Filter& getFilter(const std::string& filterName) const;
481 
485  const Filter& getFilter(int index) const;
486 
490  Filter& getFilter(const std::string& filterName);
491 
495  Filter& getFilter(int index);
496 
504  void setFilterOperator(const Filter& filt, std::shared_ptr<FilterOperator> op);
505 
507  int getFilterCount() const;
508 
509  protected:
511  virtual void updateTime(Time newTime, Time oldTime);
514  virtual void startupToInitializeStateTransition();
517  virtual void initializeToExecuteStateTransition(iteration_result iterate);
520  virtual std::string localQuery(const std::string& queryStr) const;
521 
522  public:
528  virtual void registerInterfaces(const std::string& configString);
534  void registerFilterInterfaces(const std::string& configString);
537  void closeInterface(interface_handle handle);
539  auto getID() const noexcept { return fedID; }
541  modes getCurrentMode() const { return currentMode.load(); }
544  Time getCurrentTime() const { return currentTime; }
546  const std::string& getName() const { return name; }
548  const std::shared_ptr<Core>& getCorePointer() { return coreObject; }
549  // interface for filter objects
551  int filterCount() const;
557  void setInfo(interface_handle handle, const std::string& info);
561  const std::string& getInfo(interface_handle handle);
562 
569  void setInterfaceOption(interface_handle handle, int32_t option, int32_t option_value = 1);
576  int32_t getInterfaceOption(interface_handle handle, int32_t option);
577 
584  const std::string& getInjectionType(interface_handle handle) const;
585 
591  const std::string& getExtractionType(interface_handle handle) const;
592 
599  const std::string& getInjectionUnits(interface_handle handle) const;
600 
606  const std::string& getExtractionUnits(interface_handle handle) const;
611  const std::string& getInterfaceUnits(interface_handle handle) const
612  {
613  return getExtractionUnits(handle);
614  }
615 
620  void logMessage(int level, const std::string& message) const;
621 
625  void logErrorMessage(const std::string& message) const
626  {
627  logMessage(helics_log_level_error, message);
628  }
632  void logWarningMessage(const std::string& message) const
633  {
634  logMessage(helics_log_level_warning, message);
635  }
639  void logInfoMessage(const std::string& message) const
640  {
641  logMessage(helics_log_level_summary, message);
642  }
646  void logDebugMessage(const std::string& message) const
647  {
648  logMessage(helics_log_level_data, message);
649  }
651  void completeOperation();
652 
653  private:
658  void registerFilterInterfacesJson(const std::string& jsonString);
663  void registerFilterInterfacesToml(const std::string& tomlString);
664 };
665 
669 HELICS_CXX_EXPORT void cleanupHelicsLibrary();
670 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helics-time.hpp:31
data
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
helics::Federate::completeOperation
void completeOperation()
Definition: Federate.cpp:573
helics::identifier_id_t::value
BaseType value() const noexcept
Definition: helicsTypes.hpp:75
helics::Federate::modes::pending_exec
@ pending_exec
state pending EnterExecution State
helics::Federate::setInterfaceOption
void setInterfaceOption(interface_handle handle, int32_t option, int32_t option_value=1)
Definition: Federate.cpp:1355
helics::Federate::currentMode
std::atomic< modes > currentMode
the current state of the simulation
Definition: application_api/Federate.hpp:65
helics::Federate::modes::error
@ error
error state no core communication is possible but values can be retrieved
helics_flag_use_json_serialization
@ helics_flag_use_json_serialization
Definition: helics_enums.h:121
helics::Federate::getFilter
const Filter & getFilter(const std::string &filterName) const
Definition: Federate.cpp:1322
helics::BrokerFactory::cleanUpBrokers
size_t cleanUpBrokers()
Definition: BrokerFactory.cpp:266
helicsTypes.hpp
helics::CloningFilter
Definition: Filters.hpp:135
isMember
bool isMember(const toml::value &element, const std::string &key)
Definition: TomlProcessingFunctions.hpp:148
helics::initializationTime
constexpr Time initializationTime
Definition: helics-time.hpp:38
helics::iteration_result::next_step
@ next_step
helics::Federate::getName
const std::string & getName() const
Definition: application_api/Federate.hpp:546
helics::Federate::getFilterCount
int getFilterCount() const
Definition: Federate.cpp:1340
helics::iteration_result::iterating
@ iterating
indicator that the iterations need to continue
helics::loadFederateInfo
FederateInfo loadFederateInfo(const std::string &configString)
Definition: FederateInfo.cpp:639
helics::iteration_request
iteration_request
Definition: core-types.hpp:90
helics::Federate::enterExecutingModeComplete
iteration_result enterExecutingModeComplete()
Definition: Federate.cpp:395
helics::Federate::error
void error(int errorcode)
Definition: Federate.cpp:596
helics::Federate::registerFilterInterfaces
void registerFilterInterfaces(const std::string &configString)
Definition: Federate.cpp:798
helics::Federate::startupToInitializeStateTransition
virtual void startupToInitializeStateTransition()
Definition: Federate.cpp:784
helics::Federate::getExtractionType
const std::string & getExtractionType(interface_handle handle) const
Definition: Federate.cpp:1307
helics::Federate::setProperty
void setProperty(int32_t option, double timeValue)
Definition: Federate.cpp:435
helics::local_federate_id
Definition: federate_id.hpp:22
helics::FederateInfo::forceNewCore
bool forceNewCore
indicator that the federate should not use an existing core
Definition: FederateInfo.hpp:32
helics::Federate::finalizeAsync
void finalizeAsync()
Definition: Federate.cpp:526
helics::iteration_result
iteration_result
Definition: core-types.hpp:81
helics_log_level_summary
@ helics_log_level_summary
Definition: helics_enums.h:171
helics::Filter::getHandle
interface_handle getHandle() const
Definition: Filters.hpp:80
helics::Federate::enterInitializingModeComplete
void enterInitializingModeComplete()
Definition: Federate.cpp:278
helics::Federate::addSourceTarget
void addSourceTarget(const Filter &filt, const std::string &targetEndpoint)
Definition: Federate.cpp:1277
helics::Federate::closeInterface
void closeInterface(interface_handle handle)
Definition: Federate.cpp:1371
helics::Federate::enterInitializingModeAsync
void enterInitializingModeAsync()
Definition: Federate.cpp:238
helics::Federate::getFlagOption
virtual bool getFlagOption(int flag) const
Definition: Federate.cpp:471
helics::Federate::enterExecutingMode
iteration_result enterExecutingMode(iteration_request iterate=iteration_request::no_iterations)
Definition: Federate.cpp:306
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
loadToml
toml::value loadToml(const std::string &tomlString)
Definition: TomlProcessingFunctions.cpp:22
helics::Federate::registerInterfaces
virtual void registerInterfaces(const std::string &configString)
Definition: Federate.cpp:793
helics::Federate::modes::pending_iterative_time
@ pending_iterative_time
state that the federate is pending an iterative time request
helics::CoreFactory::FindOrCreate
std::shared_ptr< Core > FindOrCreate(core_type type, const std::string &coreName, std::vector< std::string > args)
Definition: CoreFactory.cpp:180
helics::Federate::globalError
void globalError(int errorcode, const std::string &message)
Definition: Federate.cpp:629
helics::Federate::modes
modes
Definition: application_api/Federate.hpp:47
helics::Filter
Definition: Filters.hpp:39
helics::Federate::currentTime
Time currentTime
the current simulation time
Definition: application_api/Federate.hpp:76
helics::Federate::setInfo
void setInfo(interface_handle handle, const std::string &info)
Definition: Federate.cpp:1379
helics::Federate::nameSegmentSeparator
char nameSegmentSeparator
the separator between automatically prependend names
Definition: application_api/Federate.hpp:66
helics_log_level_warning
@ helics_log_level_warning
Definition: helics_enums.h:169
helics::getOptionIndex
int getOptionIndex(std::string val)
Definition: FederateInfo.cpp:356
helics::Federate::setFlagOption
virtual void setFlagOption(int flag, bool flagValue=true)
Definition: Federate.cpp:466
helics::Federate::requestTimeIterativeAsync
void requestTimeIterativeAsync(Time nextInternalTimeStep, iteration_request iterate)
Definition: Federate.cpp:715
helics::Federate::registerFilter
Filter & registerFilter()
Definition: application_api/Federate.hpp:448
helics::Federate::updateTime
virtual void updateTime(Time newTime, Time oldTime)
Definition: Federate.cpp:779
helics::getOptionValue
int getOptionValue(std::string val)
Definition: FederateInfo.cpp:375
helics_sequencing_mode
helics_sequencing_mode
Definition: helics_enums.h:333
helics::InvalidFunctionCall
Definition: core-exceptions.hpp:67
helics::filter_types
filter_types
Definition: Filters.hpp:21
helics::Federate::getTimeProperty
Time getTimeProperty(int32_t option) const
Definition: Federate.cpp:450
helics::InvalidParameter
Definition: core-exceptions.hpp:48
helics::Federate::queryComplete
std::string queryComplete(query_id_t queryIndex)
Definition: Federate.cpp:1191
helics::Federate::initializeToExecuteStateTransition
virtual void initializeToExecuteStateTransition(iteration_result iterate)
Definition: Federate.cpp:788
helics::Federate::getInterfaceName
const std::string & getInterfaceName(interface_handle handle) const
Definition: Federate.cpp:1297
helics_log_level_error
@ helics_log_level_error
Definition: helics_enums.h:167
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helics::Federate::modes::finished
@ finished
the simulation has finished normally but everything is still connected
helics::CoreApp
Definition: application_api/CoreApp.hpp:25
helics::Federate::setQueryCallback
void setQueryCallback(const std::function< std::string(const std::string &)> &queryFunction)
Definition: Federate.cpp:1201
helics::iteration_result::halted
@ halted
indicator that the simulation has been halted
helics::Federate::logMessage
void logMessage(int level, const std::string &message) const
Definition: Federate.cpp:1394
helics::CoreFactory::findJoinableCoreOfType
std::shared_ptr< Core > findJoinableCoreOfType(core_type type)
Definition: CoreFactory.cpp:272
helics::Federate::getInfo
const std::string & getInfo(interface_handle handle)
Definition: Federate.cpp:1389
helics::FederateInfo
Definition: FederateInfo.hpp:20
helics::Filter::isValid
bool isValid() const
Definition: Filters.hpp:73
helics::identifier_id_t< identifier_type, identifiers::query, invalid_id_value >
helics::Federate::localQuery
virtual std::string localQuery(const std::string &queryStr) const
Definition: Federate.cpp:1119
helics::Federate::isAsyncOperationCompleted
bool isAsyncOperationCompleted() const
Definition: Federate.cpp:256
helics::FederateInfo::coreType
core_type coreType
the type of the core
Definition: FederateInfo.hpp:29
helics::Federate::operator=
Federate & operator=(Federate &&fed) noexcept
Definition: Federate.cpp:183
helics::Federate::useJsonSerialization
bool useJsonSerialization
Definition: application_api/Federate.hpp:70
helics::filterTypeFromString
filter_types filterTypeFromString(const std::string &filterType) noexcept
Definition: Filters.cpp:37
loadJson
Json::Value loadJson(const std::string &jsonString)
Definition: JsonProcessingFunctions.cpp:24
helics::Federate::modes::startup
@ startup
when created the federate is in startup state
helics::Federate::getCurrentMode
modes getCurrentMode() const
Definition: application_api/Federate.hpp:541
helics::FederateInfo::useJsonSerialization
bool useJsonSerialization
Definition: FederateInfo.hpp:34
helics::Federate::getID
auto getID() const noexcept
Definition: application_api/Federate.hpp:539
helics_log_level_data
@ helics_log_level_data
Definition: helics_enums.h:180
helics::Federate::getCurrentTime
Time getCurrentTime() const
Definition: application_api/Federate.hpp:544
helics::Federate::~Federate
virtual ~Federate()
Definition: Federate.cpp:198
fed
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
helics::Federate::getInjectionUnits
const std::string & getInjectionUnits(interface_handle handle) const
Definition: Federate.cpp:1312
helics::Federate::getInterfaceUnits
const std::string & getInterfaceUnits(interface_handle handle) const
Definition: application_api/Federate.hpp:611
helics::interface_handle
Definition: federate_id.hpp:65
helics_flag_strict_config_checking
@ helics_flag_strict_config_checking
Definition: helics_enums.h:119
helics::make_cloning_filter
CloningFilter & make_cloning_filter(filter_types type, Federate *mFed, const std::string &delivery, const std::string &name)
Definition: Filters.cpp:339
helics::Federate::registerGlobalCloningFilter
CloningFilter & registerGlobalCloningFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1270
helics::cleanupHelicsLibrary
void cleanupHelicsLibrary()
Definition: Federate.cpp:36
helics::Federate::enterInitializingMode
void enterInitializingMode()
Definition: Federate.cpp:212
helics::Federate::registerCloningFilter
CloningFilter & registerCloningFilter()
Definition: application_api/Federate.hpp:455
helics::iteration_result::error
@ error
indicator that an error has occurred
helics::Federate::logInfoMessage
void logInfoMessage(const std::string &message) const
Definition: application_api/Federate.hpp:639
helics::Federate::modes::pending_time
@ pending_time
state that the federate is pending a timeRequest
helics::Federate::queryAsync
query_id_t queryAsync(const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
Definition: Federate.cpp:1166
helics::Federate::modes::pending_finalize
@ pending_finalize
state that the federate is pending a finalize call
helics::Federate::getInjectionType
const std::string & getInjectionType(interface_handle handle) const
Definition: Federate.cpp:1302
helics::Federate::localError
void localError(int errorcode, const std::string &message)
Definition: Federate.cpp:618
helics::Federate::setGlobal
void setGlobal(const std::string &valueName, const std::string &value)
Definition: Federate.cpp:1221
helics::FederateInfo::coreName
std::string coreName
the name of the core
Definition: FederateInfo.hpp:40
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
error
@ error
only print errors
Definition: loggingHelper.hpp:22
helics::Federate::addDependency
void addDependency(const std::string &fedName)
Definition: Federate.cpp:1231
helics::FederateInfo::separator
char separator
separator for global name of localFederates
Definition: FederateInfo.hpp:23
helics::iteration_time
Definition: helics-time.hpp:47
helics::Federate::getInterfaceOption
int32_t getInterfaceOption(interface_handle handle, int32_t option)
Definition: Federate.cpp:1366
helics::Federate::logWarningMessage
void logWarningMessage(const std::string &message) const
Definition: application_api/Federate.hpp:632
helics::Federate::requestTimeAdvance
Time requestTimeAdvance(Time timeDelta)
Definition: application_api/Federate.hpp:232
helics::Federate::logErrorMessage
void logErrorMessage(const std::string &message) const
Definition: application_api/Federate.hpp:625
helics::FunctionExecutionFailure
Definition: core-exceptions.hpp:29
helics::Federate::requestTimeIterativeComplete
iteration_time requestTimeIterativeComplete()
Definition: Federate.cpp:747
helics::CoreFactory::cleanUpCores
size_t cleanUpCores()
Definition: CoreFactory.cpp:313
helics::Federate::logDebugMessage
void logDebugMessage(const std::string &message) const
Definition: application_api/Federate.hpp:646
helics::generateFullCoreInitString
std::string generateFullCoreInitString(const FederateInfo &fi)
Definition: FederateInfo.cpp:785
helics::Federate::finalize
void finalize()
Definition: Federate.cpp:479
helics::Federate
Definition: application_api/Federate.hpp:44
helics::Federate::getCorePointer
const std::shared_ptr< Core > & getCorePointer()
Definition: application_api/Federate.hpp:548
helics::Federate::requestNextStep
Time requestNextStep()
Definition: application_api/Federate.hpp:227
helics::Federate::addDestinationTarget
void addDestinationTarget(const Filter &filt, const std::string &targetEndpoint)
Definition: Federate.cpp:1287
helics::Federate::setFilterOperator
void setFilterOperator(const Filter &filt, std::shared_ptr< FilterOperator > op)
register a operator for the specified filter
Definition: Federate.cpp:1345
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:26
helics::Federate::registerGlobalFilter
Filter & registerGlobalFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1263
helics::Federate::finalizeComplete
void finalizeComplete()
Definition: Federate.cpp:556
helics::Federate::requestTime
Time requestTime(Time nextInternalTimeStep)
Definition: Federate.cpp:640
helics::loadCores
bool loadCores()
Definition: loadCores.cpp:149
helics::Federate::strictConfigChecking
bool strictConfigChecking
Definition: application_api/Federate.hpp:68
helics_sequencing_mode_fast
@ helics_sequencing_mode_fast
Definition: helics_enums.h:335
helics::Federate::query
std::string query(const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
Definition: Federate.cpp:1149
helics::make_filter
Filter & make_filter(filter_types type, Federate *mFed, const std::string &name)
Definition: Filters.cpp:287
helics::Federate::setLoggingCallback
void setLoggingCallback(const std::function< void(int, const std::string &, const std::string &)> &logFunction)
Definition: Federate.cpp:460
helics::Federate::modes::finalize
@ finalize
the federate has finished executing normally final values may be retrieved
helics::Federate::coreObject
std::shared_ptr< Core > coreObject
reference to the core simulation API
Definition: application_api/Federate.hpp:75
helics::Federate::enterExecutingModeAsync
void enterExecutingModeAsync(iteration_request iterate=iteration_request::no_iterations)
Definition: Federate.cpp:357
helics::Federate::getExtractionUnits
const std::string & getExtractionUnits(interface_handle handle) const
Definition: Federate.cpp:1317
helics::Federate::getIntegerProperty
int getIntegerProperty(int32_t option) const
Definition: Federate.cpp:455
helics::Federate::Federate
Federate() noexcept
Definition: Federate.cpp:163
helics::Federate::modes::pending_init
@ pending_init
indicator that the federate is pending entry to initialization state
helics::Federate::requestTimeComplete
Time requestTimeComplete()
Definition: Federate.cpp:729
helics::Federate::requestTimeIterative
iteration_time requestTimeIterative(Time nextInternalTimeStep, iteration_request iterate)
Definition: Federate.cpp:669
helics::HelicsException
Definition: core-exceptions.hpp:18
helics::Federate::modes::initializing
@ initializing
entered after the enterInitializingMode call has returned
helics::Federate::requestTimeAsync
void requestTimeAsync(Time nextInternalTimeStep)
Definition: Federate.cpp:701
helics::Federate::filterCount
int filterCount() const
Definition: Federate.cpp:1114
helics::FederateInfo::defName
std::string defName
a default name to use for a federate
Definition: FederateInfo.hpp:39
helics::Federate::modes::executing
@ executing
entered after the enterExectuationState call has returned
helics::Federate::isQueryCompleted
bool isQueryCompleted(query_id_t queryIndex) const
Definition: Federate.cpp:1211
helics::Federate::disconnect
virtual void disconnect()
Definition: Federate.cpp:567