helics  3.3.0
CommonCore.hpp
1 /*
2 Copyright (c) 2017-2022,
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 "FederateIdExtra.hpp"
15 #include "HandleManager.hpp"
16 #include "gmlc/concurrency/DelayedObjects.hpp"
17 #include "gmlc/concurrency/TriggerVariable.hpp"
18 #include "gmlc/containers/AirLock.hpp"
19 #include "gmlc/containers/DualStringMappedVector.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 TranslatorFederate;
49 class TimeoutMonitor;
50 enum class InterfaceType : char;
52 enum class OperatingState : std::uint8_t { OPERATING = 0, ERROR_STATE = 5, DISCONNECTED = 10 };
53 
55 const std::string& stateString(OperatingState state);
56 
58 class FedInfo {
59  public:
60  FederateState* fed = nullptr;
61  OperatingState state{OperatingState::OPERATING};
62 
63  constexpr FedInfo() = default;
64  constexpr explicit FedInfo(FederateState* newfed) noexcept: fed(newfed) {}
65  FederateState* operator->() noexcept { return fed; }
66  const FederateState* operator->() const noexcept { return fed; }
67  operator bool() const noexcept { return (fed != nullptr); }
68 };
69 
74 class CommonCore: public Core, public BrokerBase {
75  public:
77  CommonCore() noexcept;
80  explicit CommonCore(bool arg) noexcept;
82  explicit CommonCore(std::string_view coreName);
84  virtual ~CommonCore() override;
85  virtual void configure(std::string_view configureString) override final;
86  virtual void configureFromArgs(int argc, char* argv[]) override final;
87  virtual void configureFromVector(std::vector<std::string> args) override final;
88  virtual bool isConfigured() const override final;
89  virtual bool isOpenToNewFederates() const override final;
90  virtual bool hasError() const override final;
91  virtual void globalError(LocalFederateId federateID,
92  int errorCode,
93  std::string_view errorString) override final;
94  virtual void localError(LocalFederateId federateID,
95  int errorCode,
96  std::string_view errorString) override final;
97  virtual int getErrorCode() const override final;
98  virtual std::string getErrorMessage() const override final;
99  virtual void finalize(LocalFederateId federateID) override final;
100  virtual void enterInitializingMode(LocalFederateId federateID) override final;
101  virtual void setCoreReadyToInit() override final;
102  virtual IterationResult
104  IterationRequest iterate = NO_ITERATION) override final;
105  virtual LocalFederateId registerFederate(std::string_view name,
106  const CoreFederateInfo& info) override final;
107  virtual const std::string& getFederateName(LocalFederateId federateID) const override final;
108  virtual LocalFederateId getFederateId(std::string_view name) const override final;
109  virtual int32_t getFederationSize() override final;
110  virtual Time timeRequest(LocalFederateId federateID, Time next) override final;
112  Time next,
113  IterationRequest iterate) override final;
114  virtual void processCommunications(LocalFederateId federateID,
115  std::chrono::milliseconds msToWait) override final;
116  virtual Time getCurrentTime(LocalFederateId federateID) const override final;
117  virtual uint64_t getCurrentReiteration(LocalFederateId federateID) const override final;
118  virtual void
119  setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override final;
120  virtual void setIntegerProperty(LocalFederateId federateID,
121  int32_t property,
122  int16_t propertyValue) override final;
123  virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override final;
124  virtual int16_t getIntegerProperty(LocalFederateId federateID,
125  int32_t property) const override final;
126  virtual void setFlagOption(LocalFederateId federateID,
127  int32_t flag,
128  bool flagValue = true) override final;
129  virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override final;
130 
132  std::string_view key,
133  std::string_view type,
134  std::string_view units) override final;
136  std::string_view key) const override final;
137  virtual InterfaceHandle registerInput(LocalFederateId federateID,
138  std::string_view key,
139  std::string_view type,
140  std::string_view units) override final;
141 
142  virtual InterfaceHandle getInput(LocalFederateId federateID,
143  std::string_view key) const override final;
144 
145  virtual const std::string& getHandleName(InterfaceHandle handle) const override final;
146 
147  virtual void setHandleOption(InterfaceHandle handle,
148  int32_t option,
149  int32_t option_value) override final;
150 
151  virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override final;
152  virtual void closeHandle(InterfaceHandle handle) override final;
153  virtual void removeTarget(InterfaceHandle handle,
154  std::string_view targetToRemove) override final;
155  virtual void addDestinationTarget(InterfaceHandle handle,
156  std::string_view dest,
157  InterfaceType hint) override final;
158  virtual void addSourceTarget(InterfaceHandle handle,
159  std::string_view name,
160  InterfaceType hint) override final;
161  virtual const std::string& getDestinationTargets(InterfaceHandle handle) const override final;
162 
163  virtual const std::string& getSourceTargets(InterfaceHandle handle) const override final;
164  virtual const std::string& getInjectionUnits(InterfaceHandle handle) const override final;
165  virtual const std::string& getExtractionUnits(InterfaceHandle handle) const override final;
166  virtual const std::string& getInjectionType(InterfaceHandle handle) const override final;
167  virtual const std::string& getExtractionType(InterfaceHandle handle) const override final;
168  virtual void setValue(InterfaceHandle handle, const char* data, uint64_t len) override final;
169  virtual const std::shared_ptr<const SmallBuffer>& getValue(InterfaceHandle handle,
170  uint32_t* inputIndex) override final;
171  virtual const std::vector<std::shared_ptr<const SmallBuffer>>&
172  getAllValues(InterfaceHandle handle) override final;
173  virtual const std::vector<InterfaceHandle>&
174  getValueUpdates(LocalFederateId federateID) override final;
176  std::string_view name,
177  std::string_view type) override final;
178 
180  std::string_view name,
181  std::string_view type) override final;
182  virtual InterfaceHandle getEndpoint(LocalFederateId federateID,
183  std::string_view name) const override final;
184  virtual InterfaceHandle registerFilter(std::string_view filterName,
185  std::string_view type_in,
186  std::string_view type_out) override final;
187  virtual InterfaceHandle registerCloningFilter(std::string_view filterName,
188  std::string_view type_in,
189  std::string_view type_out) override final;
190  virtual InterfaceHandle registerTranslator(std::string_view translatorName,
191  std::string_view endpointType,
192  std::string_view units) override final;
193  virtual InterfaceHandle getFilter(std::string_view name) const override final;
194  virtual InterfaceHandle getTranslator(std::string_view name) const override final;
195  virtual void addDependency(LocalFederateId federateID,
196  std::string_view federateName) override final;
197  virtual void linkEndpoints(std::string_view source, std::string_view dest) override final;
198  virtual void addAlias(std::string_view interfaceKey, std::string_view alias) override final;
199  virtual void makeConnections(const std::string& file) override final;
200  virtual void dataLink(std::string_view source, std::string_view target) override final;
201  virtual void addSourceFilterToEndpoint(std::string_view filter,
202  std::string_view endpoint) override final;
203  virtual void addDestinationFilterToEndpoint(std::string_view filter,
204  std::string_view endpoint) override final;
205  virtual void
206  send(InterfaceHandle sourceHandle, const void* data, uint64_t length) override final;
207  virtual void sendAt(InterfaceHandle sourceHandle,
208  const void* data,
209  uint64_t length,
210  Time time) override final;
211  virtual void sendTo(InterfaceHandle sourceHandle,
212  const void* data,
213  uint64_t length,
214  std::string_view destination) override final;
215  virtual void sendToAt(InterfaceHandle sourceHandle,
216  const void* data,
217  uint64_t length,
218  std::string_view destination,
219  Time time) override final;
220  virtual void sendMessage(InterfaceHandle sourceHandle,
221  std::unique_ptr<Message> message) override final;
222  virtual uint64_t receiveCount(InterfaceHandle destination) override final;
223  virtual std::unique_ptr<Message> receive(InterfaceHandle destination) override final;
224  virtual std::unique_ptr<Message> receiveAny(LocalFederateId federateID,
225  InterfaceHandle& endpoint_id) override final;
226  virtual uint64_t receiveCountAny(LocalFederateId federateID) override final;
227  virtual void logMessage(LocalFederateId federateID,
228  int logLevel,
229  std::string_view messageToLog) override final;
230  virtual void setFilterOperator(InterfaceHandle filter,
231  std::shared_ptr<FilterOperator> callback) override final;
232  virtual void
234  std::shared_ptr<TranslatorOperator> callbacks) override final;
236  void setIdentifier(std::string_view name);
238  virtual const std::string& getIdentifier() const override final;
239  virtual const std::string& getAddress() const override final;
240  const std::string& getFederateNameNoThrow(GlobalFederateId federateID) const noexcept;
241 
243  virtual void setLoggingLevel(int logLevel) override;
244  virtual void setLoggingCallback(
245  LocalFederateId federateID,
246  std::function<void(int, std::string_view, std::string_view)> logFunction) override final;
247 
248  virtual void setLogFile(std::string_view lfile) override final;
249 
250  virtual std::string query(std::string_view target,
251  std::string_view queryStr,
252  HelicsSequencingModes mode) override;
253  virtual void
255  std::function<std::string(std::string_view)> queryFunction) override;
256  virtual void setGlobal(std::string_view valueName, std::string_view value) override;
257  virtual void sendCommand(std::string_view target,
258  std::string_view commandStr,
259  std::string_view source,
260  HelicsSequencingModes mode) override;
261  virtual std::pair<std::string, std::string> getCommand(LocalFederateId federateID) override;
262 
263  virtual std::pair<std::string, std::string> waitCommand(LocalFederateId federateID) override;
264 
265  virtual bool connect() override final;
266  virtual bool isConnected() const override final;
267  virtual void disconnect() override final;
268  virtual bool waitForDisconnect(
269  std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const override final;
271  void unregister();
274  virtual void processDisconnect(bool skipUnregister = false) override final;
275 
279 
281  virtual void setInterfaceInfo(InterfaceHandle handle, std::string_view info) override final;
283  virtual const std::string& getInterfaceInfo(InterfaceHandle handle) const override final;
284 
285  virtual void setInterfaceTag(InterfaceHandle handle,
286  std::string_view tag,
287  std::string_view value) override final;
288  virtual const std::string& getInterfaceTag(InterfaceHandle handle,
289  std::string_view tag) const override final;
290 
291  virtual void setFederateTag(LocalFederateId fid,
292  std::string_view tag,
293  std::string_view value) override final;
294  virtual const std::string& getFederateTag(LocalFederateId fid,
295  std::string_view tag) const override final;
296 
297  private:
300  virtual bool brokerConnect() = 0;
303  virtual void brokerDisconnect() = 0;
304 
305  protected:
306  virtual void processCommand(ActionMessage&& command) override final;
307 
308  virtual void processPriorityCommand(ActionMessage&& command) override final;
309 
313  virtual void transmit(route_id rid, const ActionMessage& command) = 0;
317  virtual void transmit(route_id rid, ActionMessage&& command) = 0;
324  virtual void addRoute(route_id rid, int interfaceId, std::string_view routeInfo) = 0;
328  virtual void removeRoute(route_id rid) = 0;
330  FederateState* getFederateAt(LocalFederateId federateID) const;
332  FederateState* getFederate(std::string_view federateName) const;
337  const BasicHandleInfo* getHandleInfo(InterfaceHandle handle) const;
339  const BasicHandleInfo* getLocalEndpoint(std::string_view name) const;
340 
342  bool allInitReady() const;
344  bool allDisconnected() const;
347 
348  virtual double getSimulationTime() const override;
349 
350  private:
352  FederateState* getFederateCore(GlobalFederateId federateID);
354  FederateState* getFederateCore(std::string_view federateName);
358  FederateState* getHandleFederateCore(InterfaceHandle handle);
359 
360  private:
361  std::atomic<double> simTime{BrokerBase::mInvalidSimulationTime};
362  GlobalFederateId keyFed{};
363  std::string prevIdentifier;
364 
365  std::map<GlobalFederateId, route_id> routing_table;
367  gmlc::containers::SimpleQueue<ActionMessage> delayTransmitQueue;
369  std::unordered_map<std::string, route_id> knownExternalEndpoints;
370  std::vector<std::pair<std::string, std::string>> tags;
371 
372  std::unique_ptr<TimeoutMonitor> timeoutMon;
374  void transmitDelayedMessages();
376  void errorRespondDelayedMessages(std::string_view estring);
380  void transmitDelayedMessages(GlobalFederateId source);
381 
383  void routeMessage(ActionMessage& cmd, GlobalFederateId dest);
386  void routeMessage(const ActionMessage& cmd);
387 
389  void routeMessage(ActionMessage&& cmd, GlobalFederateId dest);
392  void routeMessage(ActionMessage&& cmd);
393 
395  void checkDependencies();
397  void processQueryResponse(const ActionMessage& m);
399  void checkQueryTimeouts();
401  void processCommandsForCore(const ActionMessage& cmd);
403  void processCoreConfigureCommands(ActionMessage& cmd);
405  void processDisconnectCommand(ActionMessage& cmd);
407  void processQueryCommand(ActionMessage& cmd);
409  void processLogAndErrorCommand(ActionMessage& cmd);
411  void processLinkingCommand(ActionMessage& cmd);
414  bool checkForLocalPublication(ActionMessage& cmd);
416  uint16_t getNextAirlockIndex();
418  void loadBasicJsonInfo(
419  Json::Value& base,
420  const std::function<void(Json::Value& fedval, const FedInfo& fed)>& fedLoader) const;
427  void initializeMapBuilder(std::string_view request,
428  std::uint16_t index,
429  bool reset,
430  bool force_ordering) const;
432  std::string coreQuery(std::string_view queryStr, bool force_ordering) const;
433 
436  std::string quickCoreQueries(std::string_view queryStr) const;
437 
439  std::string filteredEndpointQuery(const FederateState* fed) const;
441  void processCommandInstruction(ActionMessage& command);
442 
443  private:
444  int32_t _global_federation_size = 0;
445  std::atomic<int16_t> delayInitCounter{0};
447  bool filterTiming{false};
448 
451  gmlc::containers::DualStringMappedVector<FedInfo, GlobalFederateId> loopFederates;
452 
455  std::atomic<int32_t> messageCounter{54};
456  ordered_guarded<HandleManager> handles;
457  HandleManager loopHandles;
460  std::vector<std::pair<GlobalFederateId, int32_t>> timeBlocks;
461  TranslatorFederate* translatorFed{nullptr};
462  std::atomic<std::thread::id> translatorThread{std::thread::id{}};
463  std::atomic<GlobalFederateId> translatorFedID;
464 
466  std::map<int32_t, std::vector<ActionMessage>> delayedTimingMessages;
467 
469  std::atomic<int> queryCounter{1};
471  gmlc::concurrency::DelayedObjects<std::string> activeQueries;
473  std::deque<std::pair<int32_t, decltype(std::chrono::steady_clock::now())>> queryTimeouts;
475  mutable std::vector<std::tuple<fileops::JsonMapBuilder, std::vector<ActionMessage>, bool>>
476  mapBuilders;
477 
478  FilterFederate* filterFed{nullptr};
479  std::atomic<std::thread::id> filterThread{std::thread::id{}};
480  std::atomic<GlobalFederateId> filterFedID;
481  std::atomic<uint16_t> nextAirLock{0};
482  std::array<gmlc::containers::AirLock<std::any>, 4> dataAirlocks;
484  gmlc::concurrency::TriggerVariable disconnection;
485  private:
486  // generate a filter Federate
487  void generateFilterFederate();
488  // generate a translator Federate
489  void generateTranslatorFederate();
490  // generate a timing connection between the core and filter Federate
491  void connectFilterTiming();
493  bool hasTimeBlock(GlobalFederateId federateID);
495  bool waitCoreRegistration();
497  void generateMessages(ActionMessage& message,
498  const std::vector<std::pair<GlobalHandle, std::string_view>>& targets);
500  void deliverMessage(ActionMessage& message);
502  ActionMessage& processMessage(ActionMessage& message);
506  const BasicHandleInfo& createBasicHandle(GlobalFederateId global_federateId,
507  LocalFederateId local_federateId,
508  InterfaceType HandleType,
509  std::string_view key,
510  std::string_view type,
511  std::string_view units,
512  uint16_t flags = 0);
513 
517  bool isLocal(GlobalFederateId global_fedid) const;
521  route_id getRoute(GlobalFederateId global_fedid) const;
523  void checkForNamedInterface(ActionMessage& command);
525  void removeNamedTarget(ActionMessage& command);
528  void setAsUsed(BasicHandleInfo* hand);
530  void registerInterface(ActionMessage& command);
532  void addTargetToInterface(ActionMessage& command);
534  void removeTargetFromInterface(ActionMessage& command);
536  void disconnectInterface(ActionMessage& command);
538  void manageTimeBlocks(const ActionMessage& command);
539 
546  std::string federateQuery(const FederateState* fed,
547  std::string_view queryStr,
548  bool force_ordering) const;
549 
551  void sendErrorToFederates(int errorCode, std::string_view message);
553  bool checkAndProcessDisconnect();
555  void sendDisconnect(action_message_def::action_t disconnectType = CMD_STOP);
557  void broadcastToFederates(ActionMessage& cmd);
559  int generateMapObjectCounter() const;
560  friend class TimeoutMonitor;
561 };
562 
563 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helicsTime.hpp:31
helics::CommonCore::getInterfaceTag
virtual const std::string & getInterfaceTag(InterfaceHandle handle, std::string_view tag) const override final
Definition: CommonCore.cpp:5257
helics::BrokerBase::joinAllThreads
void joinAllThreads()
Definition: BrokerBase.cpp:91
helics::destination_target
@ destination_target
indicator that the target is a destination target
Definition: flagOperations.hpp:43
helics::BrokerBase::BrokerState::CONNECTED
@ CONNECTED
the connection process has completed
helics::CommonCore::processCommand
virtual void processCommand(ActionMessage &&command) override final
Definition: CommonCore.cpp:3238
helics::CommonCore::removeRoute
virtual void removeRoute(route_id rid)=0
helics::FederateState::receive
std::unique_ptr< Message > receive(InterfaceHandle id)
Definition: FederateState.cpp:230
helics::ActionMessage::source_handle
InterfaceHandle source_handle
16 – for local handle or local code
Definition: ActionMessage.hpp:38
helics::gDirectCoreId
constexpr GlobalFederateId gDirectCoreId
Definition: GlobalFederateId.hpp:128
helics::CommonCore::send
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length) override final
Definition: CommonCore.cpp:2053
helics::BrokerBase::setLoggerFunction
void setLoggerFunction(std::function< void(int level, std::string_view identifier, std::string_view message)> logFunction)
Definition: BrokerBase.cpp:526
NO_ITERATION
constexpr auto NO_ITERATION
simplified alias to indicate that no iterations are needed
Definition: CoreTypes.hpp:112
helics::CommonCore::configureFromVector
virtual void configureFromVector(std::vector< std::string > args) override final
Definition: CommonCore.cpp:114
helics::FederateState::getEvents
const std::vector< InterfaceHandle > & getEvents() const
Definition: FederateState.cpp:906
helics::ActionMessage::setExtraDestData
void setExtraDestData(int32_t data)
Definition: ActionMessage.hpp:161
helics::CommonCore::processCommunications
virtual void processCommunications(LocalFederateId federateID, std::chrono::milliseconds msToWait) override final
Definition: CommonCore.cpp:869
helics::FederateState::getAllValues
const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle)
Definition: FederateState.cpp:273
helics::message_process_result::processed
@ processed
the message was used to update the current state
helics::IterationResult::HALTED
@ HALTED
indicator that the simulation has been halted
helics::BrokerBase::isRunning
bool isRunning() const
Definition: BrokerBase.hpp:201
helics::targeted_flag
@ targeted_flag
flag indicating an endpoint is targeted
Definition: flagOperations.hpp:57
helics::HandleManager::findHandle
BasicHandleInfo * findHandle(GlobalHandle id)
Definition: HandleManager.cpp:129
helics::indicator_flag
@ indicator_flag
flag used for setting values
Definition: flagOperations.hpp:18
helics::FederateState::getState
FederateStates getState() const
Definition: FederateState.cpp:174
helics::CommonCore::~CommonCore
virtual ~CommonCore() override
Definition: CommonCore.cpp:286
helics::FederateState::nextAllowedSendTime
Time nextAllowedSendTime() const
Definition: FederateState.hpp:339
helics::FederateState::global_id
std::atomic< GlobalFederateId > global_id
global id code, default to invalid
Definition: FederateState.hpp:66
helics::ActionMessage::name
void name(std::string_view name)
Definition: ActionMessage.hpp:107
helics::CommonCore::getSimulationTime
virtual double getSimulationTime() const override
Definition: CommonCore.cpp:523
helics::CommonCore::query
virtual std::string query(std::string_view target, std::string_view queryStr, HelicsSequencingModes mode) override
Definition: CommonCore.cpp:2854
helics::CommonCore::getInput
virtual InterfaceHandle getInput(LocalFederateId federateID, std::string_view key) const override final
Definition: CommonCore.cpp:1112
helics::CommonCore::sendTo
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination) override final
Definition: CommonCore.cpp:1936
helics::BrokerBase::BrokerState::CONFIGURED
@ CONFIGURED
the broker itself has been configured and is ready to connect
helics::BrokerBase::higher_broker_id
GlobalBrokerId higher_broker_id
the id code of the broker 1 level about this broker
Definition: BrokerBase.hpp:49
helics::BrokerBase::useJsonSerialization
bool useJsonSerialization
Definition: BrokerBase.hpp:145
helics::BrokerBase::brokerKey
std::string brokerKey
Definition: BrokerBase.hpp:71
helics::CoreFactory::findCore
std::shared_ptr< Core > findCore(std::string_view name)
Definition: CoreFactory.cpp:304
helics::CommonCore::removeTarget
virtual void removeTarget(InterfaceHandle handle, std::string_view targetToRemove) override final
Definition: CommonCore.cpp:1327
helics::CommonCore::getFederateName
virtual const std::string & getFederateName(LocalFederateId federateID) const override final
Definition: CommonCore.cpp:718
helics::BrokerBase::timeout
Time timeout
timeout to wait to establish a broker connection before giving up
Definition: BrokerBase.hpp:63
helics::CommonCore::setHandleOption
virtual void setHandleOption(InterfaceHandle handle, int32_t option, int32_t option_value) override final
Definition: CommonCore.cpp:1256
helics::CommonCore::getValue
virtual const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex) override final
Definition: CommonCore.cpp:1618
helics::FederateState::getMessageDestinations
std::vector< std::pair< GlobalHandle, std::string_view > > getMessageDestinations(InterfaceHandle handle)
Definition: FederateState.cpp:597
helics::OperatingState
OperatingState
Definition: CommonCore.hpp:52
HELICS_SEQUENCING_MODE_ORDERED
@ HELICS_SEQUENCING_MODE_ORDERED
Definition: helics_enums.h:399
helics::FederateState::interfaces
InterfaceInfo & interfaces()
Definition: FederateState.hpp:170
helics::CommonCore::getValueUpdates
virtual const std::vector< InterfaceHandle > & getValueUpdates(LocalFederateId federateID) override final
Definition: CommonCore.cpp:1650
helics::FederateState::lastErrorString
const std::string & lastErrorString() const
Definition: FederateState.hpp:350
helics::core_flag
@ core_flag
flag indicating that message comes from a core vs a broker
Definition: flagOperations.hpp:74
helics::CommonCore::linkEndpoints
virtual void linkEndpoints(std::string_view source, std::string_view dest) override final
Definition: CommonCore.cpp:1883
helics::HandleManager::getFilter
const BasicHandleInfo * getFilter(std::string_view name) const
Definition: HandleManager.cpp:305
helics::BrokerBase::asyncTime
bool asyncTime
flag indicating the use of async time keeping
Definition: BrokerBase.hpp:92
helics::CommonCore::addRoute
virtual void addRoute(route_id rid, int interfaceId, std::string_view routeInfo)=0
helics::CommonCore::registerTargetedEndpoint
virtual InterfaceHandle registerTargetedEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override final
Definition: CommonCore.cpp:1693
helics::BrokerBase::enable_profiling
bool enable_profiling
Definition: BrokerBase.hpp:146
helics::CommonCore::addDependency
virtual void addDependency(LocalFederateId federateID, std::string_view federateName) override final
Definition: CommonCore.cpp:1924
helics::ERROR_LEVEL
@ ERROR_LEVEL
only print errors
Definition: logging.hpp:23
helics::DUMPLOG
@ DUMPLOG
only for dumplog
Definition: logging.hpp:21
helics::action_message_def::action_t
action_t
Definition: ActionMessageDefintions.hpp:20
helics::InvalidIdentifier
Definition: core-exceptions.hpp:39
helics::FederateState::receiveAny
std::unique_ptr< Message > receiveAny(InterfaceHandle &id)
Definition: FederateState.cpp:239
helics::CommonCore::getInjectionType
virtual const std::string & getInjectionType(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1214
helics::FederateState::enterExecutingMode
IterationResult enterExecutingMode(IterationRequest iterate, bool sendRequest=false)
Definition: FederateState.cpp:493
helics::CommonCore::setGlobal
virtual void setGlobal(std::string_view valueName, std::string_view value) override
Definition: CommonCore.cpp:2945
helics::filter_processing_required_flag
@ filter_processing_required_flag
flag indicating that the message requires processing for filters yet
Definition: flagOperations.hpp:97
helics::HelicsSystemFailure
Definition: core-exceptions.hpp:94
helics::BrokerBase::BrokerState::TERMINATING
@ TERMINATING
the termination process has started
helics::InterfaceType
InterfaceType
Definition: CoreTypes.hpp:99
helics::FederateState::createInterface
void createInterface(InterfaceType htype, InterfaceHandle handle, std::string_view key, std::string_view type, std::string_view units, uint16_t flags)
Definition: FederateState.cpp:331
helics::CommonCore::receive
virtual std::unique_ptr< Message > receive(InterfaceHandle destination) override final
Definition: CommonCore.cpp:2229
helics::CommonCore::setIntegerProperty
virtual void setIntegerProperty(LocalFederateId federateID, int32_t property, int16_t propertyValue) override final
Definition: CommonCore.cpp:904
helics::FederateState::getCurrentIteration
int32_t getCurrentIteration() const
Definition: FederateState.cpp:179
helics::BrokerBase::getGlobalId
GlobalBrokerId getGlobalId() const
Definition: BrokerBase.hpp:210
helics::FederateStates::TERMINATING
@ TERMINATING
the federate is in the process of shutting down
helics::BrokerBase::hasTimeDependency
bool hasTimeDependency
Definition: BrokerBase.hpp:136
helics::CommonCore::registerFilter
virtual InterfaceHandle registerFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override final
Definition: CommonCore.cpp:1732
helics::BrokerBase::getFlagValue
bool getFlagValue(int32_t flag) const
Definition: BrokerBase.cpp:426
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:1832
HELICS_LOG_LEVEL_WARNING
@ HELICS_LOG_LEVEL_WARNING
Definition: helics_enums.h:192
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:74
helics::CommonCore::setLogFile
virtual void setLogFile(std::string_view lfile) override final
Definition: CommonCore.cpp:2298
helics::FederateState::getOptionFlag
bool getOptionFlag(int optionFlag) const
Definition: FederateState.cpp:1847
helics::SmallBuffer::assign
void assign(const void *start, const void *end)
Definition: SmallBuffer.hpp:177
helics::CommonCore::addDestinationFilterToEndpoint
virtual void addDestinationFilterToEndpoint(std::string_view filter, std::string_view endpoint) override final
Definition: CommonCore.cpp:1915
helics::InterfaceHandle
Definition: LocalFederateId.hpp:65
helics::async_timing_flag
@ async_timing_flag
flag indicating use of asynchronous timing on a global level
Definition: flagOperations.hpp:81
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:187
helics::CommonCore::getAllValues
virtual const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle) override final
Definition: CommonCore.cpp:1635
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:1490
helics::FederateState::getQueueSize
uint64_t getQueueSize(InterfaceHandle id) const
Definition: FederateState.cpp:209
helics::BrokerBase::hasFilters
bool hasFilters
flag indicating filters come through the broker
Definition: BrokerBase.hpp:140
helics::GlobalBrokerId::baseValue
constexpr BaseType baseValue() const
Definition: GlobalFederateId.hpp:35
helics::CommonCore::timeRequest
virtual Time timeRequest(LocalFederateId federateID, Time next) override final
Definition: CommonCore.cpp:764
loggingHelper.hpp
helics::BrokerBase::sendToLogger
bool sendToLogger(GlobalFederateId federateID, int logLevel, std::string_view name, std::string_view message, bool fromRemote=false) const
Definition: BrokerBase.cpp:343
LogManager.hpp
helics::BrokerBase::global_id
std::atomic< GlobalBrokerId > global_id
Definition: BrokerBase.hpp:46
helics::BrokerBase::BrokerState::CONNECTING
@ CONNECTING
the connection process has started
helics::GlobalFederateId
Definition: GlobalFederateId.hpp:72
helics::ActionMessage
Definition: ActionMessage.hpp:30
helics::CommonCore::dataLink
virtual void dataLink(std::string_view source, std::string_view target) override final
Definition: CommonCore.cpp:1899
helics::CommonCore::getHandleFederate
FederateState * getHandleFederate(InterfaceHandle handle)
Definition: CommonCore.cpp:303
helics::FederateState::waitSetup
IterationResult waitSetup()
Definition: FederateState.cpp:432
helics::BrokerBase::maxIterationCount
int32_t maxIterationCount
the maximum number of iterative loops that are allowed
Definition: BrokerBase.hpp:61
helics::CommonCore::getEndpoint
virtual InterfaceHandle getEndpoint(LocalFederateId federateID, std::string_view name) const override final
Definition: CommonCore.cpp:1723
helics::parent_broker_id
constexpr GlobalBrokerId parent_broker_id
Definition: GlobalFederateId.hpp:64
helics::FederateState::local_id
LocalFederateId local_id
id code for the local federate descriptor
Definition: FederateState.hpp:65
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:404
HELICS_PROPERTY_INT_LOG_BUFFER
@ HELICS_PROPERTY_INT_LOG_BUFFER
Definition: helics_enums.h:289
helics::BrokerBase::brokerStateName
const friend std::string & brokerStateName(BrokerState state)
Definition: BrokerBase.cpp:965
helics::has_dest_filter_flag
@ has_dest_filter_flag
indicator that an endpoint or message has a destination filter
Definition: flagOperations.hpp:64
helics::BrokerBase::setLoggingFile
void setLoggingFile(std::string_view lfile)
Definition: BrokerBase.cpp:421
helics::FederateState::getIntegerProperty
int getIntegerProperty(int intProperty) const
Definition: FederateState.cpp:1900
helics::BrokerBase::parseArgs
int parseArgs(int argc, char *argv[])
Definition: BrokerBase.cpp:268
coreTypeOperations.hpp
helics::FederateState::lastErrorCode
int lastErrorCode() const noexcept
Definition: FederateState.hpp:352
helics::CommonCore::getFederateTag
virtual const std::string & getFederateTag(LocalFederateId fid, std::string_view tag) const override final
Definition: CommonCore.cpp:5294
helics::CommonCore::unregister
void unregister()
Definition: CommonCore.cpp:264
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:1976
helics::CommonCore::allDisconnected
bool allDisconnected() const
Definition: CommonCore.cpp:502
helics::CommonCore::enterInitializingMode
virtual void enterInitializingMode(LocalFederateId federateID) override final
Definition: CommonCore.cpp:558
helics::CommonCore::getLocalEndpoint
const BasicHandleInfo * getLocalEndpoint(std::string_view name) const
Definition: CommonCore.cpp:341
helics::BrokerBase::mLogManager
std::shared_ptr< LogManager > mLogManager
object to handle the logging considerations
Definition: BrokerBase.hpp:110
helics::CommonCore::setIdentifier
void setIdentifier(std::string_view name)
Definition: CommonCore.cpp:2419
helics::CommonCore::closeHandle
virtual void closeHandle(InterfaceHandle handle) override final
Definition: CommonCore.cpp:1310
helics::CommonCore::setTimeProperty
virtual void setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override final
Definition: CommonCore.cpp:930
helics::CommonCore::getInterfaceInfo
virtual const std::string & getInterfaceInfo(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:5242
helics::CommonCore::getCommand
virtual std::pair< std::string, std::string > getCommand(LocalFederateId federateID) override
Definition: CommonCore.cpp:2307
helics::versionString
constexpr auto versionString
Definition: helicsVersion.hpp:18
HELICS_PROPERTY_INT_CONSOLE_LOG_LEVEL
@ HELICS_PROPERTY_INT_CONSOLE_LOG_LEVEL
Definition: helics_enums.h:287
helics::appendMessage
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:925
helics::BrokerBase::configureBase
virtual void configureBase()
Definition: BrokerBase.cpp:295
helics::ActionMessage::counter
uint16_t counter
26 counter for filter tracking or message counter
Definition: ActionMessage.hpp:41
helics::CommonCore::waitCommand
virtual std::pair< std::string, std::string > waitCommand(LocalFederateId federateID) override
Definition: CommonCore.cpp:2316
HELICS_FLAG_OBSERVER
@ HELICS_FLAG_OBSERVER
Definition: helics_enums.h:101
helics::CommonCore::addAlias
virtual void addAlias(std::string_view interfaceKey, std::string_view alias) override final
Definition: CommonCore.cpp:1891
helics::CommonCore::getFederate
FederateState * getFederate(std::string_view federateName) const
Definition: CommonCore.cpp:297
helics::ConnectionFailure
Definition: core-exceptions.hpp:76
helics::CommonCore::setQueryCallback
virtual void setQueryCallback(LocalFederateId federateID, std::function< std::string(std::string_view)> queryFunction) override
Definition: CommonCore.cpp:2439
helics::BrokerBase::minChildCount
int32_t minChildCount
Definition: BrokerBase.hpp:60
helics::BrokerBase::no_ping
bool no_ping
indicator that the broker is not very responsive to ping requests
Definition: BrokerBase.hpp:142
helics::FilterFederate::hasActiveTimeDependencies
bool hasActiveTimeDependencies() const
Definition: FilterFederate.cpp:1110
helics::CommonCore::addDestinationTarget
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint) override final
Definition: CommonCore.cpp:1361
helics::CommonCore::connect
virtual bool connect() override final
Definition: CommonCore.cpp:130
helics::FederateState::setOptionFlag
void setOptionFlag(int optionFlag, bool value)
Definition: FederateState.cpp:1735
helics::CommonCore::CommonCore
CommonCore() noexcept
Definition: CommonCore.cpp:73
helics::CommonCore::addSourceFilterToEndpoint
virtual void addSourceFilterToEndpoint(std::string_view filter, std::string_view endpoint) override final
Definition: CommonCore.cpp:1907
helics::InvalidFunctionCall
Definition: core-exceptions.hpp:67
helics::toggleActionFlag
void toggleActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:160
helics::ActionMessage::dest_handle
InterfaceHandle dest_handle
24 local handle for a targeted message
Definition: ActionMessage.hpp:40
helics::CommonCore::getHandleOption
virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override final
Definition: CommonCore.cpp:1285
helics::CommonCore::getIntegerProperty
virtual int16_t getIntegerProperty(LocalFederateId federateID, int32_t property) const override final
Definition: CommonCore.cpp:955
helics::InvalidParameter
Definition: core-exceptions.hpp:48
helics::BrokerBase::lastErrorString
std::string lastErrorString
storage for last error string
Definition: BrokerBase.hpp:152
helics::HandleManager
Definition: HandleManager.hpp:25
helics::FederateState::getIdentifier
const std::string & getIdentifier() const
Definition: FederateState.hpp:166
HELICS_PROPERTY_INT_LOG_LEVEL
@ HELICS_PROPERTY_INT_LOG_LEVEL
Definition: helics_enums.h:281
helics::Core
Definition: core/Core.hpp:41
helics::CommonCore::checkInFlightQueriesForDisconnect
void checkInFlightQueriesForDisconnect()
Definition: CommonCore.cpp:5017
helics::BrokerBase::globalTime
bool globalTime
flag indicating that the broker should use a global time coordinator
Definition: BrokerBase.hpp:90
helics::CommonCore::configure
virtual void configure(std::string_view configureString) override final
Definition: CommonCore.cpp:82
helics::BrokerBase::setLogLevel
void setLogLevel(int32_t level)
Definition: BrokerBase.cpp:532
helics::FederateState::setLogger
void setLogger(std::function< void(int, std::string_view, std::string_view)> logFunction)
Definition: FederateState.cpp:224
helics::CommonCore::getExtractionType
virtual const std::string & getExtractionType(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1238
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helics::FederateState::grantedTime
Time grantedTime() const
Definition: FederateState.hpp:337
helics::commandErrorString
const char * commandErrorString(int errorCode)
Definition: ActionMessage.cpp:828
helics::BrokerBase::addActionMessage
void addActionMessage(const ActionMessage &m)
Definition: BrokerBase.cpp:551
helics::CommonCore::addSourceTarget
virtual void addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint) override final
Definition: CommonCore.cpp:1429
helics::CommonCore::setFederateTag
virtual void setFederateTag(LocalFederateId fid, std::string_view tag, std::string_view value) override final
Definition: CommonCore.cpp:5313
helics::CommonCore::setLoggingCallback
virtual void setLoggingCallback(LocalFederateId federateID, std::function< void(int, std::string_view, std::string_view)> logFunction) override final
Definition: CommonCore.cpp:2325
helics::MessageProcessingResult::HALTED
@ HALTED
indicator that the simulation has been halted
helics::BrokerBase::generateLocalAddressString
virtual std::string generateLocalAddressString() const =0
helics::FilterFederate
Definition: FilterFederate.hpp:33
helics::CommonCore::receiveCount
virtual uint64_t receiveCount(InterfaceHandle destination) override final
Definition: CommonCore.cpp:2220
helics::CommonCore::getFederateId
virtual LocalFederateId getFederateId(std::string_view name) const override final
Definition: CommonCore.cpp:744
helics::disconnected_flag
@ disconnected_flag
flag indicating that a broker/federate is disconnected
Definition: flagOperations.hpp:85
helics::gRootBrokerID
constexpr GlobalBrokerId gRootBrokerID
Definition: GlobalFederateId.hpp:66
helics::CommonCore::requestTimeIterative
virtual iteration_time requestTimeIterative(LocalFederateId federateID, Time next, IterationRequest iterate) override final
Definition: CommonCore.cpp:812
helics::CommonCore::isConfigured
virtual bool isConfigured() const override final
Definition: CommonCore.cpp:357
helics::route_id
Definition: GlobalFederateId.hpp:184
helics::has_source_filter_flag
@ has_source_filter_flag
indicator that an endpoint or message has a source filter
Definition: flagOperations.hpp:60
helics::CommonCore::waitForDisconnect
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const override final
Definition: CommonCore.cpp:255
helics::BrokerBase::timeCoord
std::unique_ptr< BaseTimeCoordinator > timeCoord
object managing the time control
Definition: BrokerBase.hpp:108
helics::BrokerBase::BrokerState::INITIALIZING
@ INITIALIZING
the enter initialization process has started
helics::FederateState::waitCommand
std::pair< std::string, std::string > waitCommand()
Definition: FederateState.cpp:2166
helics::CommonCore::getTimeProperty
virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override final
Definition: CommonCore.cpp:946
helics::IterationRequest
IterationRequest
Definition: CoreTypes.hpp:92
helics::CommonCore::allInitReady
bool allInitReady() const
Definition: CommonCore.cpp:486
helics::CommonCore::getTranslator
virtual InterfaceHandle getTranslator(std::string_view name) const override final
Definition: CommonCore.cpp:1865
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:1025
helics::CommonCore::registerTranslator
virtual InterfaceHandle registerTranslator(std::string_view translatorName, std::string_view endpointType, std::string_view units) override final
Definition: CommonCore.cpp:1812
helics::setActionFlag
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:130
helics::CommonCore::sendMessage
virtual void sendMessage(InterfaceHandle sourceHandle, std::unique_ptr< Message > message) override final
Definition: CommonCore.cpp:2104
helics::BrokerBase::BrokerState::CONFIGURING
@ CONFIGURING
the broker is in the processing of configuring
helics::CommonCore::setFlagOption
virtual void setFlagOption(LocalFederateId federateID, int32_t flag, bool flagValue=true) override final
Definition: CommonCore.cpp:977
helics::CommonCore::setInterfaceTag
virtual void setInterfaceTag(InterfaceHandle handle, std::string_view tag, std::string_view value) override final
Definition: CommonCore.cpp:5266
helics::FederateState::setQueryCallback
void setQueryCallback(std::function< std::string(std::string_view)> queryCallbackFunction)
Definition: FederateState.hpp:426
helics::CommonCore::getHandleName
virtual const std::string & getHandleName(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1168
helics::BrokerBase::disconnectTime
decltype(std::chrono::steady_clock::now()) disconnectTime
time when the disconnect started
Definition: BrokerBase.hpp:150
helics::FedInfo
Definition: CommonCore.hpp:58
helics::BasicHandleInfo
Definition: BasicHandleInfo.hpp:20
helics::CommonCore::registerPublication
virtual InterfaceHandle registerPublication(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override final
Definition: CommonCore.cpp:1121
helics::CoreFederateInfo::intProps
std::vector< std::pair< int, int > > intProps
container for the integer properties
Definition: CoreFederateInfo.hpp:19
helics::non_counting_flag
@ non_counting_flag
flag indicating that a federate should not count in any totals
Definition: flagOperations.hpp:90
helics::CommonCore::finalize
virtual void finalize(LocalFederateId federateID) override final
Definition: CommonCore.cpp:456
helics::BrokerBase::BrokerState::CONNECTED_ERROR
@ CONNECTED_ERROR
error state but still connected
helics::FederateState::setProperties
void setProperties(const ActionMessage &cmd)
Definition: FederateState.cpp:1550
helics::IterationResult
IterationResult
Definition: CoreTypes.hpp:83
helics::BrokerBase::enteredExecutionMode
bool enteredExecutionMode
flag indicating that the broker has entered execution mode
Definition: BrokerBase.hpp:138
helics::GlobalBrokerId
Definition: GlobalFederateId.hpp:27
helics::FederateStates::INITIALIZING
@ INITIALIZING
helics::CommonCore::sendCommand
virtual void sendCommand(std::string_view target, std::string_view commandStr, std::string_view source, HelicsSequencingModes mode) override
Definition: CommonCore.cpp:2955
helics::FederateState::getInterfaceFlags
uint16_t getInterfaceFlags() const
Definition: FederateState.hpp:226
helics::IterationRequest::ITERATE_IF_NEEDED
@ ITERATE_IF_NEEDED
indicator that the iterations need to continue
helics::FilterFederate::processMessageFilter
void processMessageFilter(ActionMessage &cmd)
Definition: FilterFederate.cpp:70
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:93
helics::BrokerBase::terminate_on_error
bool terminate_on_error
flag indicating that the federation should halt on any error
Definition: BrokerBase.hpp:84
helics::BrokerBase::lastErrorCode
std::atomic< int > lastErrorCode
storage for last error code
Definition: BrokerBase.hpp:151
helics::InterfaceType::TRANSLATOR
@ TRANSLATOR
handle to a translator object
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:1199
HelicsSequencingModes
HelicsSequencingModes
Definition: helics_enums.h:395
helics::CommonCore::getErrorMessage
virtual std::string getErrorMessage() const override final
Definition: CommonCore.cpp:449
helics::CommonCore::registerFederate
virtual LocalFederateId registerFederate(std::string_view name, const CoreFederateInfo &info) override final
Definition: CommonCore.cpp:638
helics::CommonCore::getSourceTargets
virtual const std::string & getSourceTargets(InterfaceHandle handle) const override final
Definition: CommonCore.cpp:1521
helics::FederateState::processCommunications
void processCommunications(std::chrono::milliseconds period)
Definition: FederateState.cpp:880
helics::HandleManager::getEndpoint
BasicHandleInfo * getEndpoint(std::string_view name)
Definition: HandleManager.cpp:203
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:2983
helics::prettyPrintString
std::string prettyPrintString(const ActionMessage &command)
Definition: ActionMessage.cpp:846
helics::BrokerBase::processBaseCommands
std::pair< bool, std::vector< std::string_view > > processBaseCommands(ActionMessage &command)
Definition: BrokerBase.cpp:439
helics::CommonCore::disconnect
virtual void disconnect() override final
Definition: CommonCore.cpp:229
HELICS_LOG_LEVEL_DATA
@ HELICS_LOG_LEVEL_DATA
Definition: helics_enums.h:203
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:277
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:2372
helics::CommonCore::getFederateAt
FederateState * getFederateAt(LocalFederateId federateID) const
Definition: CommonCore.cpp:291
helics::CommonCore::setCoreReadyToInit
virtual void setCoreReadyToInit() override final
Definition: CommonCore.cpp:528
helics::MessageProcessingResult::ERROR_RESULT
@ ERROR_RESULT
indicator that an error has occurred
helics::BasicHandleInfo::getInterfaceHandle
InterfaceHandle getInterfaceHandle() const
Definition: BasicHandleInfo.hpp:51
helics::observer_flag
@ observer_flag
flag indicating that a federate is an observer only
Definition: flagOperations.hpp:83
helics::CommonCore::setTranslatorOperator
virtual void setTranslatorOperator(InterfaceHandle translator, std::shared_ptr< TranslatorOperator > callbacks) override final
Definition: CommonCore.cpp:2394
helics::CommonCore::enterExecutingMode
virtual IterationResult enterExecutingMode(LocalFederateId federateID, IterationRequest iterate=NO_ITERATION) override final
Definition: CommonCore.cpp:593
helics::CommonCore::configureFromArgs
virtual void configureFromArgs(int argc, char *argv[]) override final
Definition: CommonCore.cpp:98
helics::BrokerBase::writeProfilingData
void writeProfilingData()
Definition: BrokerBase.cpp:385
helics::FederateState::getCommand
std::pair< std::string, std::string > getCommand()
Definition: FederateState.cpp:2151
helics::CommonCore::makeConnections
virtual void makeConnections(const std::string &file) override final
Definition: CommonCore.cpp:1874
helics::CommonCore::getErrorCode
virtual int getErrorCode() const override final
Definition: CommonCore.cpp:444
helics::BrokerBase::addBaseInformation
void addBaseInformation(Json::Value &base, bool hasParent) const
Definition: BrokerBase.cpp:510
helics::make_flags
constexpr uint16_t make_flags(unsigned int flag)
Definition: flagOperations.hpp:170
helics::getSpecialFederateId
constexpr GlobalFederateId getSpecialFederateId(GlobalBrokerId broker, GlobalBrokerId::BaseType index)
Definition: GlobalFederateId.hpp:131
helics::MessageProcessingResult
MessageProcessingResult
Definition: CoreTypes.hpp:64
helics::BrokerBase::BrokerState::CREATED
@ CREATED
the broker has been created
helics::CommonCore::setValue
virtual void setValue(InterfaceHandle handle, const char *data, uint64_t len) override final
Definition: CommonCore.cpp:1554
helics::CommonCore::receiveAny
virtual std::unique_ptr< Message > receiveAny(LocalFederateId federateID, InterfaceHandle &endpoint_id) override final
Definition: CommonCore.cpp:2242
helics::FederateState
Definition: FederateState.hpp:47
helics::BrokerBase::saveProfilingData
void saveProfilingData(std::string_view message)
Definition: BrokerBase.cpp:376
helics::nameless_interface_flag
@ nameless_interface_flag
flag to indicate an interface is nameless
Definition: flagOperations.hpp:68
helics::ActionMessage::actionTime
Time actionTime
40 the time an action took place or will take place //32
Definition: ActionMessage.hpp:44
helics::parent_flag
@ parent_flag
flag indicating the message is from a parent object
Definition: flagOperations.hpp:32
helics::GlobalFederateId::isValid
constexpr bool isValid() const
Definition: GlobalFederateId.hpp:109
helics::BrokerBase::setLogLevels
void setLogLevels(int32_t consoleLevel, int32_t fileLevel)
Definition: BrokerBase.cpp:545
helics::FederateState::init_requested
std::atomic< bool > init_requested
Definition: FederateState.hpp:109
helics::generateInterfaceQueryResults
std::string generateInterfaceQueryResults(std::string_view request, const HandleManager &handles, const GlobalFederateId fed, const std::function< void(Json::Value &)> &addHeaderInfo)
Definition: queryHelpers.cpp:208
helics::BrokerBase::BrokerState::TERMINATED
@ TERMINATED
the termination process has started
helics::CoreFactory::unregisterCore
void unregisterCore(std::string_view name)
Definition: CoreFactory.cpp:392
helics::BasicHandleInfo::local_fed_id
LocalFederateId local_fed_id
the local federate id of the handle
Definition: BasicHandleInfo.hpp:39
helics::FederateState::loggingLevel
int loggingLevel() const
Definition: FederateState.cpp:2351
helics::slow_responding_flag
@ slow_responding_flag
flag indicating a federate, core or broker is slow responding
Definition: flagOperations.hpp:88
helics::BrokerBase::BrokerState::ERRORED
@ ERRORED
an error was encountered
helics::BrokerBase::tickTimer
Time tickTimer
the length of each heartbeat tick
Definition: BrokerBase.hpp:62
helics::ActionMessage::setDestination
void setDestination(GlobalHandle hand)
Definition: ActionMessage.hpp:99
helics::CommonCore::isOpenToNewFederates
virtual bool isOpenToNewFederates() const override final
Definition: CommonCore.cpp:362
helics::FederateState::enterInitializingMode
IterationResult enterInitializingMode()
Definition: FederateState.cpp:461
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::InterfaceType::ENDPOINT
@ ENDPOINT
handle to an endpoint
helics::BrokerBase::debugging
bool debugging
flag indicating operation in a user debugging mode
Definition: BrokerBase.hpp:86
helics::CommonCore::getFilter
virtual InterfaceHandle getFilter(std::string_view name) const override final
Definition: CommonCore.cpp:1856
helics::CoreFederateInfo
Definition: CoreFederateInfo.hpp:16
helics::iteration_time
Definition: helicsTime.hpp:49
helics::IterationResult::NEXT_STEP
@ NEXT_STEP
HELICS_SEQUENCING_MODE_FAST
@ HELICS_SEQUENCING_MODE_FAST
Definition: helics_enums.h:397
helics::clearActionFlag
void clearActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:153
helics::CommonCore::logMessage
virtual void logMessage(LocalFederateId federateID, int logLevel, std::string_view messageToLog) override final
Definition: CommonCore.cpp:2269
helics::EndpointInfo::getSourceTargets
const std::string & getSourceTargets() const
Definition: EndpointInfo.cpp:217
helics::CommonCore::setInterfaceInfo
virtual void setInterfaceInfo(InterfaceHandle handle, std::string_view info) override final
Definition: CommonCore.cpp:5251
helics::BrokerBase::queryTimeout
Time queryTimeout
Definition: BrokerBase.hpp:65
helics::FederateState::logMessage
void logMessage(int level, std::string_view logMessageSource, std::string_view message, bool fromRemote=false) const
Definition: FederateState.cpp:2006
helics::FunctionExecutionFailure
Definition: core-exceptions.hpp:29
helics::CommonCore::getCurrentTime
virtual Time getCurrentTime(LocalFederateId federateID) const override final
Definition: CommonCore.cpp:886
helics::CommonCore::registerEndpoint
virtual InterfaceHandle registerEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override final
Definition: CommonCore.cpp:1659
helics::global_timing_flag
@ global_timing_flag
flag indicating to use global timing (overload of indicator flag)
Definition: flagOperations.hpp:76
helics::checkActionFlag
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:138
helics::CommonCore::processDisconnect
virtual void processDisconnect(bool skipUnregister=false) override final
Definition: CommonCore.cpp:200
helics::MessageProcessingResult::NEXT_STEP
@ NEXT_STEP
indicator that the iterations have completed
helics::FederateStates::EXECUTING
@ EXECUTING
the federation has entered execution state and it now advancing in time
helics::LocalFederateId
Definition: LocalFederateId.hpp:22
helics::FederateStates::FINISHED
@ FINISHED
the federation has finished its execution
helics::WARNING
@ WARNING
print/log warning and errors
Definition: logging.hpp:25
helics::CommonCore::registerInput
virtual InterfaceHandle registerInput(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override final
Definition: CommonCore.cpp:1074
helics::FederateState::addAction
void addAction(const ActionMessage &action)
Definition: FederateState.cpp:317
helics::BrokerBase::setTickForwarding
void setTickForwarding(TickForwardingReasons reason, bool value=true)
Definition: BrokerBase.cpp:858
helics::CommonCore::minFederateState
OperatingState minFederateState() const
Definition: CommonCore.cpp:512
helics::use_json_serialization_flag
@ use_json_serialization_flag
flag to indicate it should use the json packetization
Definition: flagOperations.hpp:79
helics::TimeoutMonitor
Definition: TimeoutMonitor.h:27
helics::clone_flag
@ clone_flag
flag indicating the filter is a clone filter or the data needs to be cloned
Definition: flagOperations.hpp:55
core-exceptions.hpp
helics::FederateState::setParent
void setParent(CommonCore *coreObject)
Definition: FederateState.hpp:205
helics::PROFILING
@ PROFILING
profiling log level
Definition: logging.hpp:24
helics::FederateState::requestTime
iteration_time requestTime(Time nextTime, IterationRequest iterate, bool sendRequest=false)
Definition: FederateState.cpp:606
helics::BrokerBase::isReasonForTick
static bool isReasonForTick(std::uint32_t code, TickForwardingReasons reason)
Definition: BrokerBase.hpp:230
helics::FilterFederate::createFilter
FilterInfo * createFilter(GlobalBrokerId dest, InterfaceHandle handle, std::string_view key, std::string_view type_in, std::string_view type_out, bool cloning)
Definition: FilterFederate.cpp:689
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helics::BrokerBase::BrokerState::OPERATING
@ OPERATING
normal operating conditions
helics::TranslatorFederate::hasActiveTimeDependencies
bool hasActiveTimeDependencies() const
Definition: TranslatorFederate.cpp:478
helics::FilterFederate::processDestFilterReturn
void processDestFilterReturn(ActionMessage &command)
Definition: FilterFederate.cpp:296
helics::BrokerBase::observer
bool observer
flag indicating that the broker is an observer only
Definition: BrokerBase.hpp:88
helics::stateString
const std::string & stateString(OperatingState state)
Definition: CommonCore.cpp:56
helics::CommonCore::getFederationSize
virtual int32_t getFederationSize() override final
Definition: CommonCore.cpp:755
helics::ActionMessage::action
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:88
HELICS_PROPERTY_INT_FILE_LOG_LEVEL
@ HELICS_PROPERTY_INT_FILE_LOG_LEVEL
Definition: helics_enums.h:284
helics::FederateState::getValue
const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex)
Definition: FederateState.cpp:266
helics::CommonCore::receiveCountAny
virtual uint64_t receiveCountAny(LocalFederateId federateID) override final
Definition: CommonCore.cpp:2256
helics::BrokerBase::actionQueue
gmlc::containers::BlockingPriorityQueue< ActionMessage > actionQueue
primary routing queue
Definition: BrokerBase.hpp:109
helics::gLocalCoreId
constexpr LocalFederateId gLocalCoreId(-259)
helics::error_flag
@ error_flag
flag indicating an error condition associated with the command
Definition: flagOperations.hpp:17
helics::FED
@ FED
special logging command for message coming from a fed
Definition: logging.hpp:35
helics::BrokerBase::minFederateCount
int32_t minFederateCount
Definition: BrokerBase.hpp:54
helics::CommonCore::getAddress
virtual const std::string & getAddress() const override final
Definition: CommonCore.cpp:192
helics::FederateState::getSubscribers
std::vector< GlobalHandle > getSubscribers(InterfaceHandle handle)
Definition: FederateState.cpp:586
helics::BrokerBase::BrokerState::TERMINATING_ERROR
@ TERMINATING_ERROR
the termination process has started while in an error state
helics::CommonCore::getPublication
virtual InterfaceHandle getPublication(LocalFederateId federateID, std::string_view key) const override final
Definition: CommonCore.cpp:1159
helics::BrokerBase::identifier
std::string identifier
an identifier for the broker
Definition: BrokerBase.hpp:70
helics::EndpointInfo::getDestinationTargets
const std::string & getDestinationTargets() const
Definition: EndpointInfo.cpp:236
helics::IterationRequest::NO_ITERATIONS
@ NO_ITERATIONS
indicator that the iterations have completed
helics::CommonCore::sendAt
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time) override final
Definition: CommonCore.cpp:2078
helics::HandleManager::getPublication
BasicHandleInfo * getPublication(std::string_view name)
Definition: HandleManager.cpp:247
helics::BrokerBase
Definition: BrokerBase.hpp:42
helics::BrokerBase::setErrorState
void setErrorState(int eCode, std::string_view estring)
Definition: BrokerBase.cpp:396
helics::CommonCore::isConnected
virtual bool isConnected() const override final
Definition: CommonCore.cpp:180
helics::CommonCore::registerCloningFilter
virtual InterfaceHandle registerCloningFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override final
Definition: CommonCore.cpp:1769
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:1177
helicsTime.hpp
helics::errorMessageString
std::string errorMessageString(const ActionMessage &command)
Definition: ActionMessage.cpp:834
helics::TranslatorFederate::createTranslator
TranslatorInfo * createTranslator(GlobalBrokerId dest, InterfaceHandle handle, std::string_view key, std::string_view endpointType, std::string_view units)
Definition: TranslatorFederate.cpp:289
BrokerBase.hpp
helics::BrokerBase::address
std::string address
network location of the broker
Definition: BrokerBase.hpp:76
helics::FederateStates::ERRORED
@ ERRORED
the federation has encountered an error
helics::CommonCore::getHandleInfo
const BasicHandleInfo * getHandleInfo(InterfaceHandle handle) const
Definition: CommonCore.cpp:336
helics::ActionMessage::setSource
void setSource(GlobalHandle hand)
Definition: ActionMessage.hpp:93
helics::HelicsException
Definition: core-exceptions.hpp:18
helics::HandleManager::addAlias
void addAlias(std::string_view interfaceName, std::string_view alias)
Definition: HandleManager.cpp:369
helics::CommonCore::setLoggingLevel
virtual void setLoggingLevel(int logLevel) override
Definition: CommonCore.cpp:2289
helics::TranslatorFederate
Definition: TranslatorFederate.hpp:32
helics::FederateState::checkAndSetValue
bool checkAndSetValue(InterfaceHandle pub_id, const char *data, uint64_t len)
Definition: FederateState.cpp:184
helics::fedStateString
const std::string & fedStateString(FederateStates state)
Definition: FederateState.cpp:2035
helics::InterfaceType::PUBLICATION
@ PUBLICATION
handle to output interface
helics::FederateStates::UNKNOWN
@ UNKNOWN
unknown state
helics::FederateState::getHandleOption
int32_t getHandleOption(InterfaceHandle handle, char iType, int32_t option) const
Definition: FederateState.cpp:1884
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:47
helics::bufferToJson
void bufferToJson(const LogBuffer &buffer, Json::Value &base)
Definition: LogBuffer.cpp:60
helics::child_flag
@ child_flag
flag indicating a message is from a child object
Definition: flagOperations.hpp:35
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:171
helics::setIterationFlags
void setIterationFlags(ActionMessage &command, IterationRequest iterate)
Definition: ActionMessage.cpp:936
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:895