helics  3.0.1
CommonCore.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 
9 #include "../common/GuardedTypes.hpp"
10 #include "../common/JsonBuilder.hpp"
11 #include "ActionMessage.hpp"
12 #include "BrokerBase.hpp"
13 #include "Core.hpp"
14 #include "HandleManager.hpp"
15 #include "gmlc/concurrency/DelayedObjects.hpp"
16 #include "gmlc/concurrency/TriggerVariable.hpp"
17 #include "gmlc/containers/AirLock.hpp"
18 #include "gmlc/containers/DualMappedPointerVector.hpp"
19 #include "gmlc/containers/DualMappedVector.hpp"
20 #include "gmlc/containers/MappedPointerVector.hpp"
21 #include "gmlc/containers/SimpleQueue.hpp"
22 #include "helics/helics-config.h"
23 #include "helicsTime.hpp"
24 
25 #include "json/forwards.h"
26 #include <any>
27 #include <array>
28 #include <atomic>
29 #include <chrono>
30 #include <deque>
31 #include <map>
32 #include <memory>
33 #include <set>
34 #include <string>
35 #include <tuple>
36 #include <unordered_map>
37 #include <utility>
38 #include <vector>
39 
40 namespace helics {
41 class TestHandle;
42 class FederateState;
43 
44 class BasicHandleInfo;
45 class FilterCoordinator;
46 class FilterInfo;
47 class FilterFederate;
48 class TimeoutMonitor;
49 enum class InterfaceType : char;
51 enum class operation_state : std::uint8_t { operating = 0, error = 5, disconnected = 10 };
52 
54 const std::string& state_string(operation_state state);
55 
57 class FedInfo {
58  public:
59  FederateState* fed = nullptr;
60  operation_state state{operation_state::operating};
61 
62  constexpr FedInfo() = default;
63  constexpr explicit FedInfo(FederateState* newfed) noexcept: fed(newfed) {}
64  FederateState* operator->() noexcept { return fed; }
65  const FederateState* operator->() const noexcept { return fed; }
66  operator bool() const noexcept { return (fed != nullptr); }
67 };
68 
73 class CommonCore: public Core, public BrokerBase {
74  public:
76  CommonCore() noexcept;
79  explicit CommonCore(bool arg) noexcept;
81  explicit CommonCore(const std::string& coreName);
83  virtual ~CommonCore() override;
84  virtual void configure(const std::string& configureString) override final;
85  virtual void configureFromArgs(int argc, char* argv[]) override final;
86  virtual void configureFromVector(std::vector<std::string> args) override final;
87  virtual bool isConfigured() const override final;
88  virtual bool isOpenToNewFederates() const override final;
89  virtual bool hasError() const override final;
90  virtual void globalError(LocalFederateId federateID,
91  int errorCode,
92  const std::string& errorString) override final;
93  virtual void localError(LocalFederateId federateID,
94  int errorCode,
95  const std::string& errorString) override final;
96  virtual int getErrorCode() const override final;
97  virtual std::string getErrorMessage() const override final;
98  virtual void finalize(LocalFederateId federateID) override final;
99  virtual void enterInitializingMode(LocalFederateId federateID) override final;
100  virtual void setCoreReadyToInit() override final;
101  virtual IterationResult
103  IterationRequest iterate = NO_ITERATION) override final;
104  virtual LocalFederateId registerFederate(const std::string& name,
105  const CoreFederateInfo& info) override final;
106  virtual const std::string& getFederateName(LocalFederateId federateID) const override final;
107  virtual LocalFederateId getFederateId(const std::string& name) const override final;
108  virtual int32_t getFederationSize() override final;
109  virtual Time timeRequest(LocalFederateId federateID, Time next) override final;
111  Time next,
112  IterationRequest iterate) override final;
113  virtual Time getCurrentTime(LocalFederateId federateID) const override final;
114  virtual uint64_t getCurrentReiteration(LocalFederateId federateID) const override final;
115  virtual void
116  setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override final;
117  virtual void setIntegerProperty(LocalFederateId federateID,
118  int32_t property,
119  int16_t propertyValue) override final;
120  virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override final;
121  virtual int16_t getIntegerProperty(LocalFederateId federateID,
122  int32_t property) const override final;
123  virtual void setFlagOption(LocalFederateId federateID,
124  int32_t flag,
125  bool flagValue = true) override final;
126  virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override final;
127 
129  const std::string& key,
130  const std::string& type,
131  const std::string& units) override final;
133  const std::string& key) const override final;
134  virtual InterfaceHandle registerInput(LocalFederateId federateID,
135  const std::string& key,
136  const std::string& type,
137  const std::string& units) override final;
138 
139  virtual InterfaceHandle getInput(LocalFederateId federateID,
140  const std::string& key) const override final;
141 
142  virtual const std::string& getHandleName(InterfaceHandle handle) const override final;
143 
144  virtual void setHandleOption(InterfaceHandle handle,
145  int32_t option,
146  int32_t option_value) override final;
147 
148  virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override final;
149  virtual void closeHandle(InterfaceHandle handle) override final;
150  virtual void removeTarget(InterfaceHandle handle,
151  std::string_view targetToRemove) override final;
152  virtual void addDestinationTarget(InterfaceHandle handle,
153  std::string_view dest,
154  InterfaceType hint) override final;
155  virtual void addSourceTarget(InterfaceHandle handle,
156  std::string_view name,
157  InterfaceType hint) override final;
158  virtual const std::string& getDestinationTargets(InterfaceHandle handle) const override final;
159 
160  virtual const std::string& getSourceTargets(InterfaceHandle handle) const override final;
161  virtual const std::string& getInjectionUnits(InterfaceHandle handle) const override final;
162  virtual const std::string& getExtractionUnits(InterfaceHandle handle) const override final;
163  virtual const std::string& getInjectionType(InterfaceHandle handle) const override final;
164  virtual const std::string& getExtractionType(InterfaceHandle handle) const override final;
165  virtual void setValue(InterfaceHandle handle, const char* data, uint64_t len) override final;
166  virtual const std::shared_ptr<const SmallBuffer>& getValue(InterfaceHandle handle,
167  uint32_t* inputIndex) override final;
168  virtual const std::vector<std::shared_ptr<const SmallBuffer>>&
169  getAllValues(InterfaceHandle handle) override final;
170  virtual const std::vector<InterfaceHandle>&
171  getValueUpdates(LocalFederateId federateID) override final;
173  const std::string& name,
174  const std::string& type) override final;
175 
177  const std::string& name,
178  const std::string& type) override final;
179  virtual InterfaceHandle getEndpoint(LocalFederateId federateID,
180  const std::string& name) const override final;
181  virtual InterfaceHandle registerFilter(const std::string& filterName,
182  const std::string& type_in,
183  const std::string& type_out) override final;
184  virtual InterfaceHandle registerCloningFilter(const std::string& filterName,
185  const std::string& type_in,
186  const std::string& type_out) override final;
187  virtual InterfaceHandle getFilter(const std::string& name) const override final;
188  virtual void addDependency(LocalFederateId federateID,
189  const std::string& federateName) override final;
190  virtual void linkEndpoints(const std::string& source, const std::string& dest) override final;
191  virtual void makeConnections(const std::string& file) override final;
192  virtual void dataLink(const std::string& source, const std::string& target) override final;
193  virtual void addSourceFilterToEndpoint(const std::string& filter,
194  const std::string& endpoint) override final;
195  virtual void addDestinationFilterToEndpoint(const std::string& filter,
196  const std::string& endpoint) override final;
197  virtual void
198  send(InterfaceHandle sourceHandle, const void* data, uint64_t length) override final;
199  virtual void sendAt(InterfaceHandle sourceHandle,
200  const void* data,
201  uint64_t length,
202  Time time) override final;
203  virtual void sendTo(InterfaceHandle sourceHandle,
204  const void* data,
205  uint64_t length,
206  std::string_view destination) override final;
207  virtual void sendToAt(InterfaceHandle sourceHandle,
208  const void* data,
209  uint64_t length,
210  std::string_view destination,
211  Time time) override final;
212  virtual void sendMessage(InterfaceHandle sourceHandle,
213  std::unique_ptr<Message> message) override final;
214  virtual uint64_t receiveCount(InterfaceHandle destination) override final;
215  virtual std::unique_ptr<Message> receive(InterfaceHandle destination) override final;
216  virtual std::unique_ptr<Message> receiveAny(LocalFederateId federateID,
217  InterfaceHandle& endpoint_id) override final;
218  virtual uint64_t receiveCountAny(LocalFederateId federateID) override final;
219  virtual void logMessage(LocalFederateId federateID,
220  int logLevel,
221  const std::string& messageToLog) override final;
222  virtual void setFilterOperator(InterfaceHandle filter,
223  std::shared_ptr<FilterOperator> callback) override final;
224 
226  void setIdentifier(const std::string& name);
228  virtual const std::string& getIdentifier() const override final;
229  virtual const std::string& getAddress() const override final;
230  const std::string& getFederateNameNoThrow(GlobalFederateId federateID) const noexcept;
231 
233  virtual void setLoggingLevel(int logLevel) override;
234  virtual void setLoggingCallback(
235  LocalFederateId federateID,
236  std::function<void(int, std::string_view, std::string_view)> logFunction) override final;
237 
238  virtual void setLogFile(const std::string& lfile) override final;
239 
240  virtual std::string query(const std::string& target,
241  const std::string& queryStr,
242  HelicsSequencingModes mode) override;
243  virtual void
245  std::function<std::string(std::string_view)> queryFunction) override;
246  virtual void setGlobal(const std::string& valueName, const std::string& value) override;
247  virtual void sendCommand(const std::string& target,
248  const std::string& commandStr,
249  const std::string& source,
250  HelicsSequencingModes mode) override;
251  virtual std::pair<std::string, std::string> getCommand(LocalFederateId federateID) override;
252 
253  virtual std::pair<std::string, std::string> waitCommand(LocalFederateId federateID) override;
254 
255  virtual bool connect() override final;
256  virtual bool isConnected() const override final;
257  virtual void disconnect() override final;
258  virtual bool waitForDisconnect(
259  std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const override final;
261  void unregister();
264  virtual void processDisconnect(bool skipUnregister = false) override final;
265 
269 
271  virtual void setInterfaceInfo(InterfaceHandle handle, std::string info) override final;
273  virtual const std::string& getInterfaceInfo(InterfaceHandle handle) const override final;
274 
275  virtual void setInterfaceTag(InterfaceHandle handle,
276  const std::string& tag,
277  const std::string& value) override final;
278  virtual const std::string& getInterfaceTag(InterfaceHandle handle,
279  const std::string& tag) const override final;
280 
281  virtual void setFederateTag(LocalFederateId fid,
282  const std::string& tag,
283  const std::string& value) override final;
284  virtual const std::string& getFederateTag(LocalFederateId fid,
285  const std::string& tag) const override final;
286 
287  private:
290  virtual bool brokerConnect() = 0;
293  virtual void brokerDisconnect() = 0;
294 
295  protected:
296  virtual void processCommand(ActionMessage&& command) override final;
297 
298  virtual void processPriorityCommand(ActionMessage&& command) override final;
299 
303  virtual void transmit(route_id rid, const ActionMessage& command) = 0;
307  virtual void transmit(route_id rid, ActionMessage&& command) = 0;
314  virtual void addRoute(route_id rid, int interfaceId, const std::string& routeInfo) = 0;
318  virtual void removeRoute(route_id rid) = 0;
320  FederateState* getFederateAt(LocalFederateId federateID) const;
322  FederateState* getFederate(const std::string& federateName) const;
327  const BasicHandleInfo* getHandleInfo(InterfaceHandle handle) const;
329  const BasicHandleInfo* getLocalEndpoint(const std::string& name) const;
330 
332  bool allInitReady() const;
334  bool allDisconnected() const;
337 
338  virtual double getSimulationTime() const override;
339 
340  private:
342  FederateState* getFederateCore(GlobalFederateId federateID);
344  FederateState* getFederateCore(const std::string& federateName);
348  FederateState* getHandleFederateCore(InterfaceHandle handle);
349 
350  private:
351  std::atomic<double> simTime{BrokerBase::mInvalidSimulationTime};
352  GlobalFederateId keyFed{};
353  std::string prevIdentifier;
354  std::map<GlobalFederateId, route_id>
355  routing_table;
356  gmlc::containers::SimpleQueue<ActionMessage>
357  delayTransmitQueue;
358  std::unordered_map<std::string, route_id>
360  knownExternalEndpoints;
361  std::vector<std::pair<std::string, std::string>> tags;
363  std::unique_ptr<TimeoutMonitor>
364  timeoutMon;
365 
366  void transmitDelayedMessages();
368  void errorRespondDelayedMessages(const std::string& estring);
372  void transmitDelayedMessages(GlobalFederateId source);
373 
375  void routeMessage(ActionMessage& cmd, GlobalFederateId dest);
378  void routeMessage(const ActionMessage& cmd);
379 
381  void routeMessage(ActionMessage&& cmd, GlobalFederateId dest);
384  void routeMessage(ActionMessage&& cmd);
385 
387  void checkDependencies();
389  void processQueryResponse(const ActionMessage& m);
391  void checkQueryTimeouts();
393  void processCommandsForCore(const ActionMessage& cmd);
395  void processCoreConfigureCommands(ActionMessage& cmd);
397  void processDisconnectCommand(ActionMessage& cmd);
399  void processQueryCommand(ActionMessage& cmd);
402  bool checkForLocalPublication(ActionMessage& cmd);
404  uint16_t getNextAirlockIndex();
406  void loadBasicJsonInfo(
407  Json::Value& base,
408  const std::function<void(Json::Value& fedval, const FedInfo& fed)>& fedLoader) const;
415  void initializeMapBuilder(const std::string& request,
416  std::uint16_t index,
417  bool reset,
418  bool force_ordering) const;
420  std::string coreQuery(const std::string& queryStr, bool force_ordering) const;
421 
424  std::string quickCoreQueries(const std::string& queryStr) const;
425 
427  std::string filteredEndpointQuery(const FederateState* fed) const;
429  void processCommandInstruction(ActionMessage& command);
430 
431  private:
432  int32_t _global_federation_size = 0;
433  std::atomic<int16_t> delayInitCounter{0};
434  bool filterTiming{false};
436 
439  gmlc::containers::DualMappedVector<FedInfo, std::string, GlobalFederateId> loopFederates;
440 
443  std::atomic<int32_t> messageCounter{54};
444  ordered_guarded<HandleManager> handles;
445  HandleManager loopHandles;
446  std::vector<std::pair<GlobalFederateId, int32_t>> timeBlocks;
449 
450  std::map<int32_t, std::vector<ActionMessage>>
451  delayedTimingMessages;
452 
454  std::atomic<int> queryCounter{1};
456  gmlc::concurrency::DelayedObjects<std::string> activeQueries;
458  std::deque<std::pair<int32_t, decltype(std::chrono::steady_clock::now())>> queryTimeouts;
460  mutable std::vector<std::tuple<fileops::JsonMapBuilder, std::vector<ActionMessage>, bool>>
461  mapBuilders;
462 
463  FilterFederate* filterFed{nullptr};
464  std::atomic<std::thread::id> filterThread{std::thread::id{}};
465  std::atomic<GlobalFederateId> filterFedID;
466  std::atomic<uint16_t> nextAirLock{0};
467  std::array<gmlc::containers::AirLock<std::any>, 4>
468  dataAirlocks;
469  gmlc::concurrency::TriggerVariable disconnection;
470  private:
471  // generate a filter Federate
472  void generateFilterFederate();
473  // generate a timing connection between the core and filter Federate
474  void connectFilterTiming();
476  bool hasTimeBlock(GlobalFederateId fedID);
478  bool waitCoreRegistration();
480  void generateMessages(ActionMessage& message,
481  const std::vector<std::pair<GlobalHandle, std::string_view>>& targets);
483  void deliverMessage(ActionMessage& message);
485  ActionMessage& processMessage(ActionMessage& message);
489  const BasicHandleInfo& createBasicHandle(GlobalFederateId global_federateId,
490  LocalFederateId local_federateId,
491  InterfaceType HandleType,
492  const std::string& key,
493  const std::string& type,
494  const std::string& units,
495  uint16_t flags = 0);
496 
500  bool isLocal(GlobalFederateId global_fedid) const;
504  route_id getRoute(GlobalFederateId global_fedid) const;
506  void checkForNamedInterface(ActionMessage& command);
508  void removeNamedTarget(ActionMessage& command);
511  void setAsUsed(BasicHandleInfo* hand);
513  void registerInterface(ActionMessage& command);
515  void addTargetToInterface(ActionMessage& command);
517  void removeTargetFromInterface(ActionMessage& command);
519  void disconnectInterface(ActionMessage& command);
521  void manageTimeBlocks(const ActionMessage& command);
522 
529  std::string federateQuery(const FederateState* fed,
530  const std::string& queryStr,
531  bool force_ordering) const;
532 
534  void sendErrorToFederates(int errorCode, std::string_view message);
536  bool checkAndProcessDisconnect();
538  void sendDisconnect();
540  void broadcastToFederates(ActionMessage& cmd);
542  int generateMapObjectCounter() const;
543  friend class TimeoutMonitor;
544 };
545 
546 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helicsTime.hpp:31
helics::BrokerBase::joinAllThreads
void joinAllThreads()
Definition: BrokerBase.cpp:91
helics::CommonCore::processCommand
virtual void processCommand(ActionMessage &&command) override final
Definition: CommonCore.cpp:2915
helics::CommonCore::removeRoute
virtual void removeRoute(route_id rid)=0
helics::FederateState::receive
std::unique_ptr< Message > receive(InterfaceHandle id)
Definition: FederateState.cpp:220
helics::ActionMessage::source_handle
InterfaceHandle source_handle
16 – for local handle or local code
Definition: ActionMessage.hpp:38
helics::CommonCore::send
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length) override final
Definition: CommonCore.cpp:1813
helics::BrokerBase::setLoggerFunction
void setLoggerFunction(std::function< void(int level, std::string_view identifier, std::string_view message)> logFunction)
Definition: BrokerBase.cpp:541
NO_ITERATION
constexpr auto NO_ITERATION
Definition: CoreTypes.hpp:109
helics::CommonCore::configureFromVector
virtual void configureFromVector(std::vector< std::string > args) override final
Definition: CommonCore.cpp:107
helics::FederateState::getEvents
const std::vector< InterfaceHandle > & getEvents() const
Definition: FederateState.cpp:798
helics::ActionMessage::setExtraDestData
void setExtraDestData(int32_t data)
Definition: ActionMessage.hpp:161
helics::FederateState::getAllValues
const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle)
Definition: FederateState.cpp:263
helics::IterationResult::HALTED
@ HALTED
indicator that the simulation has been halted
helics::BrokerBase::isRunning
bool isRunning() const
Definition: BrokerBase.hpp:190
helics::HandleManager::findHandle
BasicHandleInfo * findHandle(GlobalHandle id)
Definition: HandleManager.cpp:130
helics::FederateState::getState
FederateStates getState() const
Definition: FederateState.cpp:167
helics::CommonCore::~CommonCore
virtual ~CommonCore() override
Definition: CommonCore.cpp:275
helics::FederateState::nextAllowedSendTime
Time nextAllowedSendTime() const
Definition: FederateState.hpp:326
helics::FederateState::global_id
std::atomic< GlobalFederateId > global_id
global id code, default to invalid
Definition: FederateState.hpp:60
helics::CommonCore::setIdentifier
void setIdentifier(const std::string &name)
Definition: CommonCore.cpp:2125
helics::ActionMessage::name
void name(std::string_view name)
Definition: ActionMessage.hpp:107
helics::CommonCore::getSimulationTime
virtual double getSimulationTime() const override
Definition: CommonCore.cpp:487
slow_responding_flag
constexpr uint16_t slow_responding_flag
overload of extra_flag4 indicating a federate, core or broker is slow responding
Definition: flagOperations.hpp:37
helics::CommonCore::sendTo
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination) override final
Definition: CommonCore.cpp:1719
helics::BrokerBase::higher_broker_id
GlobalBrokerId higher_broker_id
the id code of the broker 1 level about this broker
Definition: BrokerBase.hpp:41
helics::BrokerBase::useJsonSerialization
bool useJsonSerialization
Definition: BrokerBase.hpp:136
helics::BrokerBase::brokerKey
std::string brokerKey
Definition: BrokerBase.hpp:63
helics::CommonCore::removeTarget
virtual void removeTarget(InterfaceHandle handle, std::string_view targetToRemove) override final
Definition: CommonCore.cpp:1206
helics::CommonCore::getFederateName
virtual const std::string & getFederateName(LocalFederateId federateID) const override final
Definition: CommonCore.cpp:662
helics::BrokerBase::sendToLogger
virtual bool sendToLogger(GlobalFederateId federateID, int logLevel, std::string_view name, std::string_view message) const
Definition: BrokerBase.cpp:396
helics::BrokerBase::timeout
Time timeout
timeout to wait to establish a broker connection before giving up
Definition: BrokerBase.hpp:56
helics::CommonCore::setHandleOption
virtual void setHandleOption(InterfaceHandle handle, int32_t option, int32_t option_value) override final
Definition: CommonCore.cpp:1135
helics::CommonCore::getValue
virtual const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex) override final
Definition: CommonCore.cpp:1463
helics::FederateState::getMessageDestinations
std::vector< std::pair< GlobalHandle, std::string_view > > getMessageDestinations(InterfaceHandle handle)
Definition: FederateState.cpp:571
HELICS_SEQUENCING_MODE_ORDERED
@ HELICS_SEQUENCING_MODE_ORDERED
Definition: helics_enums.h:367
helics::FederateState::interfaces
InterfaceInfo & interfaces()
Definition: FederateState.hpp:161
helics::CommonCore::getValueUpdates
virtual const std::vector< InterfaceHandle > & getValueUpdates(LocalFederateId federateID) override final
Definition: CommonCore.cpp:1495
helics::CommonCore::getInput
virtual InterfaceHandle getInput(LocalFederateId federateID, const std::string &key) const override final
Definition: CommonCore.cpp:990
helics::FederateState::lastErrorString
const std::string & lastErrorString() const
Definition: FederateState.hpp:337
helics::HandleManager::getFilter
const BasicHandleInfo * getFilter(std::string_view name) const
Definition: HandleManager.cpp:306
helics::BrokerBase::enable_profiling
bool enable_profiling
indicator that profiling is enabled
Definition: BrokerBase.hpp:137
helics::InvalidIdentifier
Definition: core-exceptions.hpp:38
helics::GlobalFederateId::isValid
bool isValid() const
Definition: GlobalFederateId.hpp:105
helics::FederateState::receiveAny
std::unique_ptr< Message > receiveAny(InterfaceHandle &id)
Definition: FederateState.cpp:229
helics::CommonCore::getInjectionType
virtual const std::string & getInjectionType(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1093
helics::FederateState::enterExecutingMode
IterationResult enterExecutingMode(IterationRequest iterate, bool sendRequest=false)
Definition: FederateState.cpp:477
helics::gGlobalBrokerIdShift
constexpr IdentifierBaseType gGlobalBrokerIdShift
Definition: GlobalFederateId.hpp:22
helics::HelicsSystemFailure
Definition: core-exceptions.hpp:93
helics::InterfaceType
InterfaceType
Definition: CoreTypes.hpp:96
helics::CommonCore::receive
virtual std::unique_ptr< Message > receive(InterfaceHandle destination) override final
Definition: CommonCore.cpp:1961
helics::CommonCore::setIntegerProperty
virtual void setIntegerProperty(LocalFederateId federateID, int32_t property, int16_t propertyValue) override final
Definition: CommonCore.cpp:794
helics::direct_core_id
constexpr GlobalFederateId direct_core_id
Definition: GlobalFederateId.hpp:121
helics::FederateState::getCurrentIteration
int32_t getCurrentIteration() const
Definition: FederateState.cpp:172
helics::BrokerBase::getGlobalId
GlobalBrokerId getGlobalId() const
Definition: BrokerBase.hpp:199
helics::BrokerBase::hasTimeDependency
bool hasTimeDependency
set to true if the broker has Time dependencies
Definition: BrokerBase.hpp:127
helics::BrokerBase::getFlagValue
bool getFlagValue(int32_t flag) const
Definition: BrokerBase.cpp:529
helics_definitions.hpp
base helics enumerations for C++ API's, a namespace wrapper for the definitions defined in helics_enu...
helics::IterationResult::ERROR_RESULT
@ ERROR_RESULT
indicator that an error has occurred
helics::FederateState::getTimeProperty
Time getTimeProperty(int timeProperty) const
Definition: FederateState.cpp:1644
helics::LocalFederateId::baseValue
constexpr BaseType baseValue() const
Definition: LocalFederateId.hpp:30
helics::ActionMessage::setAction
void setAction(action_message_def::action_t newAction)
Definition: ActionMessage.cpp:142
helics::CommonCore
Definition: CommonCore.hpp:73
helics::FederateState::getOptionFlag
bool getOptionFlag(int optionFlag) const
Definition: FederateState.cpp:1660
FED
@ FED
special logging command for message coming from a fed
Definition: loggingHelper.hpp:34
helics::SmallBuffer::assign
void assign(const void *start, const void *end)
Definition: SmallBuffer.hpp:174
helics::CommonCore::registerTargetedEndpoint
virtual InterfaceHandle registerTargetedEndpoint(LocalFederateId federateID, const std::string &name, const std::string &type) override final
Definition: CommonCore.cpp:1537
helics::InterfaceHandle
Definition: LocalFederateId.hpp:65
helics::CommonCore::setLogFile
virtual void setLogFile(const std::string &lfile) override final
Definition: CommonCore.cpp:2032
helics::FilterFederate::processFilterReturn
void processFilterReturn(ActionMessage &cmd)
Definition: FilterFederate.cpp:243
helics::CommonCore::getIdentifier
virtual const std::string & getIdentifier() const override final
Definition: CommonCore.cpp:179
helics::CommonCore::getAllValues
virtual const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle) override final
Definition: CommonCore.cpp:1480
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
helics::CommonCore::getDestinationTargets
virtual const std::string & getDestinationTargets(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1335
helics::FederateState::getQueueSize
uint64_t getQueueSize(InterfaceHandle id) const
Definition: FederateState.cpp:205
helics::BrokerBase::hasFilters
bool hasFilters
flag indicating filters come through the broker
Definition: BrokerBase.hpp:131
helics::GlobalBrokerId::baseValue
constexpr BaseType baseValue() const
Definition: GlobalFederateId.hpp:34
helics::CommonCore::timeRequest
virtual Time timeRequest(LocalFederateId federateID, Time next) override final
Definition: CommonCore.cpp:702
loggingHelper.hpp
helics::BrokerBase::global_id
std::atomic< GlobalBrokerId > global_id
Definition: BrokerBase.hpp:38
nameless_interface_flag
constexpr uint16_t nameless_interface_flag
overload of flag to indicate an interface is nameless
Definition: flagOperations.hpp:68
helics::GlobalFederateId
Definition: GlobalFederateId.hpp:68
helics::ActionMessage
Definition: ActionMessage.hpp:30
helics::CommonCore::getHandleFederate
FederateState * getHandleFederate(InterfaceHandle handle)
Definition: CommonCore.cpp:292
helics::FederateState::waitSetup
IterationResult waitSetup()
Definition: FederateState.cpp:417
helics::BrokerBase::maxIterationCount
int32_t maxIterationCount
the maximum number of iterative loops that are allowed
Definition: BrokerBase.hpp:54
helics::HELICS_UNKNOWN
@ HELICS_UNKNOWN
unknown state
Definition: CoreTypes.hpp:29
helics::parent_broker_id
constexpr GlobalBrokerId parent_broker_id
Definition: GlobalFederateId.hpp:60
helics::BrokerBase::fileLogLevel
int32_t fileLogLevel
the logging level for logging to a file
Definition: BrokerBase.hpp:45
helics::FederateState::local_id
LocalFederateId local_id
id code for the local federate descriptor
Definition: FederateState.hpp:59
helics::InterfaceType::FILTER
@ FILTER
handle to a filter
helics::ActionMessage::getDest
GlobalHandle getDest() const
Definition: ActionMessage.hpp:149
helics::FilterFederate::destinationProcessMessage
bool destinationProcessMessage(ActionMessage &command, const BasicHandleInfo *handle)
Definition: FilterFederate.cpp:403
helics::BrokerBase::brokerStateName
const friend std::string & brokerStateName(BrokerState state)
Definition: BrokerBase.cpp:946
helics::FederateState::getIntegerProperty
int getIntegerProperty(int intProperty) const
Definition: FederateState.cpp:1711
helics::BrokerBase::parseArgs
int parseArgs(int argc, char *argv[])
Definition: BrokerBase.cpp:312
coreTypeOperations.hpp
helics::FederateState::lastErrorCode
int lastErrorCode() const noexcept
Definition: FederateState.hpp:339
helics::CommonCore::unregister
void unregister()
Definition: CommonCore.cpp:253
helics::InterfaceType::INPUT
@ INPUT
handle to a input interface
helics::CommonCore::sendToAt
virtual void sendToAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination, Time time) override final
Definition: CommonCore.cpp:1748
helics::CommonCore::allDisconnected
bool allDisconnected() const
Definition: CommonCore.cpp:458
helics::CommonCore::enterInitializingMode
virtual void enterInitializingMode(LocalFederateId federateID) override final
Definition: CommonCore.cpp:522
helics::CommonCore::closeHandle
virtual void closeHandle(InterfaceHandle handle) override final
Definition: CommonCore.cpp:1189
helics::CommonCore::setTimeProperty
virtual void setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override final
Definition: CommonCore.cpp:820
helics::CommonCore::getInterfaceInfo
virtual const std::string & getInterfaceInfo(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:4653
helics::CommonCore::getCommand
virtual std::pair< std::string, std::string > getCommand(LocalFederateId federateID) override
Definition: CommonCore.cpp:2037
disconnected_flag
@ disconnected_flag
flag indicating that a broker/federate is disconnected
Definition: flagOperations.hpp:30
helics::versionString
constexpr auto versionString
Definition: helicsVersion.hpp:16
HELICS_PROPERTY_INT_CONSOLE_LOG_LEVEL
@ HELICS_PROPERTY_INT_CONSOLE_LOG_LEVEL
Definition: helics_enums.h:274
helics::appendMessage
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:919
helics::BrokerBase::configureBase
virtual void configureBase()
Definition: BrokerBase.cpp:339
helics::ActionMessage::counter
uint16_t counter
26 counter for filter tracking or message counter
Definition: ActionMessage.hpp:41
helics::CommonCore::setGlobal
virtual void setGlobal(const std::string &valueName, const std::string &value) override
Definition: CommonCore.cpp:2629
ERROR_LEVEL
@ ERROR_LEVEL
only print errors
Definition: loggingHelper.hpp:22
helics::CommonCore::waitCommand
virtual std::pair< std::string, std::string > waitCommand(LocalFederateId federateID) override
Definition: CommonCore.cpp:2046
HELICS_FLAG_OBSERVER
@ HELICS_FLAG_OBSERVER
Definition: helics_enums.h:99
helics::BrokerBase::timeCoord
std::unique_ptr< ForwardingTimeCoordinator > timeCoord
object managing the time control
Definition: BrokerBase.hpp:101
helics::ConnectionFailure
Definition: core-exceptions.hpp:75
checkActionFlag
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:85
helics::CommonCore::setQueryCallback
virtual void setQueryCallback(LocalFederateId federateID, std::function< std::string(std::string_view)> queryFunction) override
Definition: CommonCore.cpp:2145
helics::BrokerBase::minChildCount
int32_t minChildCount
Definition: BrokerBase.hpp:53
helics::BrokerBase::no_ping
bool no_ping
indicator that the broker is not very responsive to ping requests
Definition: BrokerBase.hpp:133
helics::FilterFederate::hasActiveTimeDependencies
bool hasActiveTimeDependencies() const
Definition: FilterFederate.cpp:1090
helics::CommonCore::addRoute
virtual void addRoute(route_id rid, int interfaceId, const std::string &routeInfo)=0
helics::CommonCore::addDestinationTarget
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint) override final
Definition: CommonCore.cpp:1240
helics::CommonCore::connect
virtual bool connect() override final
Definition: CommonCore.cpp:123
helics::CommonCore::minFederateState
operation_state minFederateState() const
Definition: CommonCore.cpp:476
helics::FederateState::setOptionFlag
void setOptionFlag(int optionFlag, bool value)
Definition: FederateState.cpp:1549
helics::CommonCore::CommonCore
CommonCore() noexcept
Definition: CommonCore.cpp:66
helics::InvalidFunctionCall
Definition: core-exceptions.hpp:66
helics::ActionMessage::dest_handle
InterfaceHandle dest_handle
24 local handle for a targeted message
Definition: ActionMessage.hpp:40
helics::operation_state
operation_state
Definition: CommonCore.hpp:51
helics::CommonCore::getHandleOption
virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override final
Definition: CommonCore.cpp:1164
helics::CommonCore::getIntegerProperty
virtual int16_t getIntegerProperty(LocalFederateId federateID, int32_t property) const override final
Definition: CommonCore.cpp:845
helics::InvalidParameter
Definition: core-exceptions.hpp:47
helics::BrokerBase::lastErrorString
std::string lastErrorString
storage for last error string
Definition: BrokerBase.hpp:141
helics::HandleManager
Definition: HandleManager.hpp:22
helics::has_source_filter_flag
@ has_source_filter_flag
indicator that an endpoint or message has a source filter
Definition: BasicHandleInfo.hpp:21
helics::FederateState::getIdentifier
const std::string & getIdentifier() const
Definition: FederateState.hpp:157
helics::CommonCore::setInterfaceTag
virtual void setInterfaceTag(InterfaceHandle handle, const std::string &tag, const std::string &value) override final
Definition: CommonCore.cpp:4677
HELICS_PROPERTY_INT_LOG_LEVEL
@ HELICS_PROPERTY_INT_LOG_LEVEL
Definition: helics_enums.h:268
helics::Core
Definition: core/Core.hpp:42
helics::CommonCore::checkInFlightQueriesForDisconnect
void checkInFlightQueriesForDisconnect()
Definition: CommonCore.cpp:4441
helics::FederateState::createInterface
void createInterface(InterfaceType htype, InterfaceHandle handle, const std::string &key, const std::string &type, const std::string &units)
Definition: FederateState.cpp:297
helics::BrokerBase::setLogLevel
void setLogLevel(int32_t level)
Definition: BrokerBase.cpp:547
helics::root_broker_id
constexpr GlobalBrokerId root_broker_id
Definition: GlobalFederateId.hpp:62
helics::FederateState::setLogger
void setLogger(std::function< void(int, std::string_view, std::string_view)> logFunction)
Definition: FederateState.hpp:401
helics::CommonCore::getExtractionType
virtual const std::string & getExtractionType(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1117
helics::RegistrationFailure
Definition: core-exceptions.hpp:84
helics::CommonCore::dataLink
virtual void dataLink(const std::string &source, const std::string &target) override final
Definition: CommonCore.cpp:1681
helics::FederateState::grantedTime
Time grantedTime() const
Definition: FederateState.hpp:324
helics::commandErrorString
const char * commandErrorString(int errorCode)
Definition: ActionMessage.cpp:823
helics::BrokerBase::addActionMessage
void addActionMessage(const ActionMessage &m)
Definition: BrokerBase.cpp:572
helics::CommonCore::addSourceTarget
virtual void addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint) override final
Definition: CommonCore.cpp:1291
helics::CommonCore::setLoggingCallback
virtual void setLoggingCallback(LocalFederateId federateID, std::function< void(int, std::string_view, std::string_view)> logFunction) override final
Definition: CommonCore.cpp:2055
helics::BrokerBase::generateLocalAddressString
virtual std::string generateLocalAddressString() const =0
helics::FilterFederate
Definition: FilterFederate.hpp:33
child_flag
constexpr uint16_t child_flag
overload of extra_flag4 indicating a message is from a child object
Definition: flagOperations.hpp:49
helics::CommonCore::receiveCount
virtual uint64_t receiveCount(InterfaceHandle destination) override final
Definition: CommonCore.cpp:1952
helics::CommonCore::query
virtual std::string query(const std::string &target, const std::string &queryStr, HelicsSequencingModes mode) override
Definition: CommonCore.cpp:2544
helics::CommonCore::requestTimeIterative
virtual iteration_time requestTimeIterative(LocalFederateId federateID, Time next, IterationRequest iterate) override final
Definition: CommonCore.cpp:734
helics::CommonCore::isConfigured
virtual bool isConfigured() const override final
Definition: CommonCore.cpp:346
helics::route_id
Definition: GlobalFederateId.hpp:168
helics::CommonCore::waitForDisconnect
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const override final
Definition: CommonCore.cpp:244
clone_flag
@ clone_flag
flag indicating the filter is a clone filter or the data needs to be cloned
Definition: flagOperations.hpp:25
helics::CoreFactory::unregisterCore
void unregisterCore(const std::string &name)
Definition: CoreFactory.cpp:358
clearActionFlag
void clearActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:100
observer_flag
constexpr uint16_t observer_flag
overload of optional_flag indicating that a federate is an observer only
Definition: flagOperations.hpp:43
helics::FederateState::waitCommand
std::pair< std::string, std::string > waitCommand()
Definition: FederateState.cpp:1918
helics::CommonCore::getTimeProperty
virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override final
Definition: CommonCore.cpp:836
helics::IterationRequest
IterationRequest
Definition: CoreTypes.hpp:89
helics::CommonCore::allInitReady
bool allInitReady() const
Definition: CommonCore.cpp:442
helics::CommonCore::logMessage
virtual void logMessage(LocalFederateId federateID, int logLevel, const std::string &messageToLog) override final
Definition: CommonCore.cpp:2001
helics::CommonCore::getInterfaceTag
virtual const std::string & getInterfaceTag(InterfaceHandle handle, const std::string &tag) const override final
Definition: CommonCore.cpp:4668
helics::ActionMessage::messageID
int32_t messageID
8 – message ID for a variety of purposes
Definition: ActionMessage.hpp:36
helics::CommonCore::getFlagOption
virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override final
Definition: CommonCore.cpp:906
helics::CommonCore::configure
virtual void configure(const std::string &configureString) override final
Definition: CommonCore.cpp:75
helics::CommonCore::sendMessage
virtual void sendMessage(InterfaceHandle sourceHandle, std::unique_ptr< Message > message) override final
Definition: CommonCore.cpp:1864
helics::CommonCore::setFlagOption
virtual void setFlagOption(LocalFederateId federateID, int32_t flag, bool flagValue=true) override final
Definition: CommonCore.cpp:864
helics::FederateState::setQueryCallback
void setQueryCallback(std::function< std::string(std::string_view)> queryCallbackFunction)
Definition: FederateState.hpp:408
indicator_flag
@ indicator_flag
flag used for setting values
Definition: flagOperations.hpp:21
helics::CommonCore::registerCloningFilter
virtual InterfaceHandle registerCloningFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out) override final
Definition: CommonCore.cpp:1612
helics::CommonCore::getHandleName
virtual const std::string & getHandleName(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1047
helics::FedInfo
Definition: CommonCore.hpp:57
helics::BasicHandleInfo
Definition: BasicHandleInfo.hpp:30
use_json_serialization_flag
@ use_json_serialization_flag
flag to indicate it should use the json packetization
Definition: flagOperations.hpp:22
helics::CoreFederateInfo::intProps
std::vector< std::pair< int, int > > intProps
container for the integer properties
Definition: CoreFederateInfo.hpp:19
helics::CommonCore::finalize
virtual void finalize(LocalFederateId federateID) override final
Definition: CommonCore.cpp:429
helics::FederateState::setProperties
void setProperties(const ActionMessage &cmd)
Definition: FederateState.cpp:1367
helics::IterationResult
IterationResult
Definition: CoreTypes.hpp:80
helics::BrokerBase::enteredExecutionMode
bool enteredExecutionMode
flag indicating that the broker has entered execution mode
Definition: BrokerBase.hpp:128
helics::GlobalBrokerId
Definition: GlobalFederateId.hpp:26
helics::CoreFactory::findCore
std::shared_ptr< Core > findCore(const std::string &name)
Definition: CoreFactory.cpp:275
helics::FederateState::getInterfaceFlags
uint16_t getInterfaceFlags() const
Definition: FederateState.hpp:215
helics::IterationRequest::ITERATE_IF_NEEDED
@ ITERATE_IF_NEEDED
indicator that the iterations need to continue
setActionFlag
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:77
helics::CommonCore::getFederateId
virtual LocalFederateId getFederateId(const std::string &name) const override final
Definition: CommonCore.cpp:682
helics::FilterFederate::processMessageFilter
void processMessageFilter(ActionMessage &cmd)
Definition: FilterFederate.cpp:71
helics::ActionMessage::payload
SmallBuffer payload
buffer to contain the data payload
Definition: ActionMessage.hpp:48
helics::HandleManager::getHandleInfo
BasicHandleInfo * getHandleInfo(int32_t index)
Definition: HandleManager.cpp:94
helics::BrokerBase::terminate_on_error
bool terminate_on_error
flag indicating that the federation should halt on any error
Definition: BrokerBase.hpp:81
helics::BrokerBase::lastErrorCode
std::atomic< int > lastErrorCode
storage for last error code
Definition: BrokerBase.hpp:140
helics::SmallBuffer::empty
bool empty() const
Definition: SmallBuffer.hpp:306
helics::ActionMessage::dest_id
GlobalFederateId dest_id
20 fed_id for a targeted message
Definition: ActionMessage.hpp:39
helics::CommonCore::transmit
virtual void transmit(route_id rid, const ActionMessage &command)=0
helics::CommonCore::getExtractionUnits
virtual const std::string & getExtractionUnits(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1078
HelicsSequencingModes
HelicsSequencingModes
Definition: helics_enums.h:363
helics::CommonCore::getErrorMessage
virtual std::string getErrorMessage() const override final
Definition: CommonCore.cpp:422
helics::CommonCore::addDependency
virtual void addDependency(LocalFederateId federateID, const std::string &federateName) override final
Definition: CommonCore.cpp:1707
helics::CommonCore::getSourceTargets
virtual const std::string & getSourceTargets(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1366
helics::HELICS_EXECUTING
@ HELICS_EXECUTING
the federation has entered execution state and it now advancing in time
Definition: CoreTypes.hpp:25
helics::HandleManager::getEndpoint
BasicHandleInfo * getEndpoint(std::string_view name)
Definition: HandleManager.cpp:204
helics::gDirectSendHandle
constexpr InterfaceHandle gDirectSendHandle
this special handle can be used to directly send a message in a core
Definition: LocalFederateId.hpp:96
helics::CommonCore::processPriorityCommand
virtual void processPriorityCommand(ActionMessage &&command) override final
Definition: CommonCore.cpp:2663
helics::prettyPrintString
std::string prettyPrintString(const ActionMessage &command)
Definition: ActionMessage.cpp:841
helics::CommonCore::disconnect
virtual void disconnect() override final
Definition: CommonCore.cpp:221
HELICS_LOG_LEVEL_DATA
@ HELICS_LOG_LEVEL_DATA
Definition: helics_enums.h:196
helics::ActionMessage::flags
uint16_t flags
28 set of messageFlags
Definition: ActionMessage.hpp:42
helics::isDisconnectCommand
bool isDisconnectCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:276
helics::InterfaceHandle::baseValue
constexpr BaseType baseValue() const
Definition: LocalFederateId.hpp:73
helics::CommonCore::setFilterOperator
virtual void setFilterOperator(InterfaceHandle filter, std::shared_ptr< FilterOperator > callback) override final
Definition: CommonCore.cpp:2102
helics::CommonCore::getFederateAt
FederateState * getFederateAt(LocalFederateId federateID) const
Definition: CommonCore.cpp:280
helics::CommonCore::setCoreReadyToInit
virtual void setCoreReadyToInit() override final
Definition: CommonCore.cpp:492
PROFILING
@ PROFILING
profiling log level
Definition: loggingHelper.hpp:23
helics::BasicHandleInfo::getInterfaceHandle
InterfaceHandle getInterfaceHandle() const
Definition: BasicHandleInfo.hpp:64
empty_flag
@ empty_flag
flag indicating the message is empty
Definition: flagOperations.hpp:33
helics::CommonCore::enterExecutingMode
virtual IterationResult enterExecutingMode(LocalFederateId federateID, IterationRequest iterate=NO_ITERATION) override final
Definition: CommonCore.cpp:557
helics::CommonCore::configureFromArgs
virtual void configureFromArgs(int argc, char *argv[]) override final
Definition: CommonCore.cpp:91
helics::BrokerBase::writeProfilingData
void writeProfilingData()
Definition: BrokerBase.cpp:485
helics::CommonCore::getFederate
FederateState * getFederate(const std::string &federateName) const
Definition: CommonCore.cpp:286
helics::FederateState::getCommand
std::pair< std::string, std::string > getCommand()
Definition: FederateState.cpp:1903
helics::CommonCore::makeConnections
virtual void makeConnections(const std::string &file) override final
Definition: CommonCore.cpp:1664
helics::CommonCore::getErrorCode
virtual int getErrorCode() const override final
Definition: CommonCore.cpp:417
helics::BrokerBase::BrokerState::configured
@ configured
the broker itself has been configured and is ready to connect
parent_flag
constexpr uint16_t parent_flag
overload of extra_flag3 indicating the message is from a parent object
Definition: flagOperations.hpp:46
error_flag
@ error_flag
flag indicating an error condition associated with the command
Definition: flagOperations.hpp:20
helics::CommonCore::setValue
virtual void setValue(InterfaceHandle handle, const char *data, uint64_t len) override final
Definition: CommonCore.cpp:1399
helics::CommonCore::receiveAny
virtual std::unique_ptr< Message > receiveAny(LocalFederateId federateID, InterfaceHandle &endpoint_id) override final
Definition: CommonCore.cpp:1974
helics::HELICS_TERMINATING
@ HELICS_TERMINATING
the federate is in the process of shutting down
Definition: CoreTypes.hpp:26
non_counting_flag
constexpr uint16_t non_counting_flag
overload of nameless_interface_flag indicating that a federate should not count in any totals
Definition: flagOperations.hpp:52
helics::CommonCore::registerPublication
virtual InterfaceHandle registerPublication(LocalFederateId federateID, const std::string &key, const std::string &type, const std::string &units) override final
Definition: CommonCore.cpp:999
helics::FederateState
Definition: FederateState.hpp:42
helics::BrokerBase::saveProfilingData
void saveProfilingData(std::string_view message)
Definition: BrokerBase.cpp:476
helics::BrokerBase::setLoggingFile
void setLoggingFile(const std::string &lfile)
Definition: BrokerBase.cpp:514
helics::BrokerBase::BrokerState::configuring
@ configuring
the broker is in the processing of configuring
helics::ActionMessage::actionTime
Time actionTime
40 the time an action took place or will take place //32
Definition: ActionMessage.hpp:44
helics::BrokerBase::setLogLevels
void setLogLevels(int32_t consoleLevel, int32_t fileLevel)
Definition: BrokerBase.cpp:565
helics::FederateState::init_requested
std::atomic< bool > init_requested
Definition: FederateState.hpp:100
helics::CommonCore::setInterfaceInfo
virtual void setInterfaceInfo(InterfaceHandle handle, std::string info) override final
Definition: CommonCore.cpp:4662
helics::BasicHandleInfo::local_fed_id
LocalFederateId local_fed_id
the local federate id of the handle
Definition: BasicHandleInfo.hpp:52
helics::FederateState::loggingLevel
int loggingLevel() const
Definition: FederateState.hpp:255
helics::CommonCore::getFederateTag
virtual const std::string & getFederateTag(LocalFederateId fid, const std::string &tag) const override final
Definition: CommonCore.cpp:4705
helics::CommonCore::registerFederate
virtual LocalFederateId registerFederate(const std::string &name, const CoreFederateInfo &info) override final
Definition: CommonCore.cpp:584
helics::BrokerBase::BrokerState::terminated
@ terminated
the termination process has started
helics::ActionMessage::setDestination
void setDestination(GlobalHandle hand)
Definition: ActionMessage.hpp:99
helics::CommonCore::isOpenToNewFederates
virtual bool isOpenToNewFederates() const override final
Definition: CommonCore.cpp:351
helics::FederateState::enterInitializingMode
IterationResult enterInitializingMode()
Definition: FederateState.cpp:445
destination_target
@ destination_target
indicator that the target is a destination target
Definition: flagOperations.hpp:17
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::CommonCore::getPublication
virtual InterfaceHandle getPublication(LocalFederateId federateID, const std::string &key) const override final
Definition: CommonCore.cpp:1036
helics::InterfaceType::ENDPOINT
@ ENDPOINT
handle to an endpoint
helics::BrokerBase::debugging
bool debugging
flag indicating operation in a user debugging mode
Definition: BrokerBase.hpp:83
helics::BrokerBase::BrokerState::connecting
@ connecting
the connection process has started
helics::CommonCore::linkEndpoints
virtual void linkEndpoints(const std::string &source, const std::string &dest) override final
Definition: CommonCore.cpp:1673
helics::CoreFederateInfo
Definition: CoreFederateInfo.hpp:16
helics::iteration_time
Definition: helicsTime.hpp:47
helics::CommonCore::setFederateTag
virtual void setFederateTag(LocalFederateId fid, const std::string &tag, const std::string &value) override final
Definition: CommonCore.cpp:4724
helics::IterationResult::NEXT_STEP
@ NEXT_STEP
HELICS_SEQUENCING_MODE_FAST
@ HELICS_SEQUENCING_MODE_FAST
Definition: helics_enums.h:365
helics::EndpointInfo::getSourceTargets
const std::string & getSourceTargets() const
Definition: EndpointInfo.cpp:214
helics::BrokerBase::queryTimeout
Time queryTimeout
Definition: BrokerBase.hpp:58
helics::CommonCore::registerFilter
virtual InterfaceHandle registerFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out) override final
Definition: CommonCore.cpp:1576
helics::FunctionExecutionFailure
Definition: core-exceptions.hpp:29
helics::BrokerBase::consoleLogLevel
int32_t consoleLogLevel
the logging level for console display
Definition: BrokerBase.hpp:44
helics::CommonCore::getCurrentTime
virtual Time getCurrentTime(LocalFederateId federateID) const override final
Definition: CommonCore.cpp:776
helics::BrokerBase::BrokerState::terminating
@ terminating
the termination process has started
targetted_flag
constexpr uint16_t targetted_flag
overload of extra_flag2 indicating an endpoint is targeted
Definition: flagOperations.hpp:55
helics::BrokerBase::BrokerState::connected
@ connected
the connection process has completed
helics::CommonCore::processDisconnect
virtual void processDisconnect(bool skipUnregister=false) override final
Definition: CommonCore.cpp:192
core_flag
@ core_flag
flag indicating that message comes from a core vs a broker
Definition: flagOperations.hpp:19
helics::LocalFederateId
Definition: LocalFederateId.hpp:22
helics::FederateState::addAction
void addAction(const ActionMessage &action)
Definition: FederateState.cpp:283
helics::BrokerBase::setTickForwarding
void setTickForwarding(TickForwardingReasons reason, bool value=true)
Definition: BrokerBase.cpp:866
helics::TimeoutMonitor
Definition: TimeoutMonitor.h:27
core-exceptions.hpp
helics::FederateState::setParent
void setParent(CommonCore *coreObject)
Definition: FederateState.hpp:194
helics::FederateState::requestTime
iteration_time requestTime(Time nextTime, IterationRequest iterate, bool sendRequest=false)
Definition: FederateState.cpp:580
helics::BrokerBase::isReasonForTick
static bool isReasonForTick(std::uint32_t code, TickForwardingReasons reason)
Definition: BrokerBase.hpp:217
helics::FederateState::logMessage
void logMessage(int level, std::string_view logMessageSource, std::string_view message) const
Definition: FederateState.cpp:1815
toggleActionFlag
void toggleActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:107
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helics::FilterFederate::processDestFilterReturn
void processDestFilterReturn(ActionMessage &command)
Definition: FilterFederate.cpp:296
helics::CommonCore::registerInput
virtual InterfaceHandle registerInput(LocalFederateId federateID, const std::string &key, const std::string &type, const std::string &units) override final
Definition: CommonCore.cpp:952
helics::BrokerBase::observer
bool observer
flag indicating that the broker is an observer only
Definition: BrokerBase.hpp:85
helics::CommonCore::registerEndpoint
virtual InterfaceHandle registerEndpoint(LocalFederateId federateID, const std::string &name, const std::string &type) override final
Definition: CommonCore.cpp:1504
helics::CommonCore::getFederationSize
virtual int32_t getFederationSize() override final
Definition: CommonCore.cpp:693
helics::ActionMessage::action
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:88
helics::BrokerBase::BrokerState::operating
@ operating
normal operating conditions
HELICS_PROPERTY_INT_FILE_LOG_LEVEL
@ HELICS_PROPERTY_INT_FILE_LOG_LEVEL
Definition: helics_enums.h:271
helics::FederateState::getValue
const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex)
Definition: FederateState.cpp:256
helics::CommonCore::receiveCountAny
virtual uint64_t receiveCountAny(LocalFederateId federateID) override final
Definition: CommonCore.cpp:1988
WARNING
@ WARNING
print/log warning and errors
Definition: loggingHelper.hpp:24
helics::BrokerBase::actionQueue
gmlc::containers::BlockingPriorityQueue< ActionMessage > actionQueue
primary routing queue
Definition: BrokerBase.hpp:102
helics::gLocalCoreId
constexpr LocalFederateId gLocalCoreId(-259)
helics::BrokerBase::minFederateCount
int32_t minFederateCount
Definition: BrokerBase.hpp:47
helics::CommonCore::getAddress
virtual const std::string & getAddress() const override final
Definition: CommonCore.cpp:184
helics::FilterFederate::createFilter
FilterInfo * createFilter(GlobalBrokerId dest, InterfaceHandle handle, const std::string &key, const std::string &type_in, const std::string &type_out, bool cloning)
Definition: FilterFederate.cpp:677
helics::FederateState::getSubscribers
std::vector< GlobalHandle > getSubscribers(InterfaceHandle handle)
Definition: FederateState.cpp:560
helics::HELICS_ERROR
@ HELICS_ERROR
the federation has encountered an error
Definition: CoreTypes.hpp:27
helics::BrokerBase::BrokerState::initializing
@ initializing
the enter initialization process has started
helics::CommonCore::getFilter
virtual InterfaceHandle getFilter(const std::string &name) const override final
Definition: CommonCore.cpp:1655
helics::BrokerBase::identifier
std::string identifier
an identifier for the broker
Definition: BrokerBase.hpp:62
helics::CommonCore::sendCommand
virtual void sendCommand(const std::string &target, const std::string &commandStr, const std::string &source, HelicsSequencingModes mode) override
Definition: CommonCore.cpp:2639
helics::HELICS_INITIALIZING
@ HELICS_INITIALIZING
Definition: CoreTypes.hpp:23
helics::EndpointInfo::getDestinationTargets
const std::string & getDestinationTargets() const
Definition: EndpointInfo.cpp:233
helics::IterationRequest::NO_ITERATIONS
@ NO_ITERATIONS
indicator that the iterations have completed
helics::HELICS_FINISHED
@ HELICS_FINISHED
the federation has finished its execution
Definition: CoreTypes.hpp:28
helics::CommonCore::sendAt
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time) override final
Definition: CommonCore.cpp:1838
helics::BrokerBase
Definition: BrokerBase.hpp:34
helics::BrokerBase::setErrorState
void setErrorState(int eCode, std::string_view estring)
Definition: BrokerBase.cpp:496
helics::CommonCore::isConnected
virtual bool isConnected() const override final
Definition: CommonCore.cpp:173
helics::isPriorityCommand
bool isPriorityCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:232
helics::CommonCore::getInjectionUnits
virtual const std::string & getInjectionUnits(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1056
helics::state_string
const std::string & state_string(operation_state state)
Definition: CommonCore.cpp:49
helics::CommonCore::getEndpoint
virtual InterfaceHandle getEndpoint(LocalFederateId federateID, const std::string &name) const override final
Definition: CommonCore.cpp:1567
helics::BrokerBase::BrokerState::errored
@ errored
an error was encountered
helicsTime.hpp
helics::CommonCore::addDestinationFilterToEndpoint
virtual void addDestinationFilterToEndpoint(const std::string &filter, const std::string &endpoint) override final
Definition: CommonCore.cpp:1697
helics::errorMessageString
std::string errorMessageString(const ActionMessage &command)
Definition: ActionMessage.cpp:829
helics::has_dest_filter_flag
@ has_dest_filter_flag
indicator that an endpoint or message has a destination filter
Definition: BasicHandleInfo.hpp:23
helics::BrokerBase::BrokerState::created
@ created
the broker has been created
BrokerBase.hpp
helics::BrokerBase::address
std::string address
network location of the broker
Definition: BrokerBase.hpp:68
helics::CommonCore::getHandleInfo
const BasicHandleInfo * getHandleInfo(InterfaceHandle handle) const
Definition: CommonCore.cpp:325
helics::ActionMessage::setSource
void setSource(GlobalHandle hand)
Definition: ActionMessage.hpp:93
helics::HelicsException
Definition: core-exceptions.hpp:18
helics::CommonCore::setLoggingLevel
virtual void setLoggingLevel(int logLevel) override
Definition: CommonCore.cpp:2023
helics::CommonCore::addSourceFilterToEndpoint
virtual void addSourceFilterToEndpoint(const std::string &filter, const std::string &endpoint) override final
Definition: CommonCore.cpp:1689
make_flags
constexpr uint16_t make_flags(unsigned int flag)
Definition: flagOperations.hpp:117
helics::MessageProcessingResult::NEXT_STEP
@ NEXT_STEP
indicator that the iterations have completed
helics::FederateState::checkAndSetValue
bool checkAndSetValue(InterfaceHandle pub_id, const char *data, uint64_t len)
Definition: FederateState.cpp:177
helics::fedStateString
const std::string & fedStateString(FederateStates state)
Definition: FederateState.cpp:1833
helics::InterfaceType::PUBLICATION
@ PUBLICATION
handle to output interface
helics::FederateState::getHandleOption
int32_t getHandleOption(InterfaceHandle handle, char iType, int32_t option) const
Definition: FederateState.cpp:1695
helics::ActionMessage::source_id
GlobalFederateId source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:37
helics::BrokerBase::global_broker_id_local
GlobalBrokerId global_broker_id_local
Definition: BrokerBase.hpp:39
helics::CommonCore::getLocalEndpoint
const BasicHandleInfo * getLocalEndpoint(const std::string &name) const
Definition: CommonCore.cpp:330
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:132
helics::setIterationFlags
void setIterationFlags(ActionMessage &command, IterationRequest iterate)
Definition: ActionMessage.cpp:930
helicsVersion.hpp
helics::generateJsonErrorResponse
std::string generateJsonErrorResponse(JsonErrorCodes code, const std::string &message)
Definition: JsonGeneration.hpp:36
helics::CommonCore::getCurrentReiteration
virtual uint64_t getCurrentReiteration(LocalFederateId federateID) const override final
Definition: CommonCore.cpp:785