 |
helics
2.8.1
|
9 #include "../common/GuardedTypes.hpp"
10 #include "../common/JsonBuilder.hpp"
11 #include "ActionMessage.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"
23 #include "helics/external/any.hpp"
24 #include "helics/helics-config.h"
26 #include "json/forwards.h"
36 #include <unordered_map>
44 class BasicHandleInfo;
45 class FilterCoordinator;
66 operator bool()
const noexcept {
return (
fed !=
nullptr); }
81 explicit CommonCore(
const std::string& coreName);
84 virtual void configure(
const std::string& configureString)
override final;
89 virtual bool hasError()
const override final;
92 const std::string& errorString)
override final;
95 const std::string& errorString)
override final;
119 int16_t propertyValue)
override final;
121 int32_t property)
const override final;
123 int32_t property)
const override final;
126 bool flagValue =
true)
override final;
130 const std::string& key,
131 const std::string& type,
132 const std::string& units)
override final;
134 const std::string& key)
const override final;
136 const std::string& key,
137 const std::string& type,
138 const std::string& units)
override final;
141 const std::string& key)
const override final;
147 int32_t option_value)
override final;
152 const std::string& targetToRemove)
override final;
154 const std::string& dest)
override final;
162 uint32_t* inputIndex)
override final;
163 virtual const std::vector<std::shared_ptr<const data_block>>&
165 virtual const std::vector<interface_handle>&
168 const std::string& name,
169 const std::string& type)
override final;
171 const std::string& name)
const override final;
173 const std::string& type_in,
174 const std::string& type_out)
override final;
176 const std::string& type_in,
177 const std::string& type_out)
override final;
180 const std::string& federateName)
override final;
182 const std::string& dest)
override final;
184 virtual void dataLink(
const std::string& source,
const std::string& target)
override final;
186 const std::string& endpoint)
override final;
188 const std::string& endpoint)
override final;
190 const std::string& destination,
192 uint64_t length)
override final;
195 const std::string& destination,
197 uint64_t length)
override final;
199 std::unique_ptr<Message> message)
override final;
207 const std::string& messageToLog)
override final;
209 std::shared_ptr<FilterOperator> callback)
override final;
215 virtual const std::string&
getAddress() const override final;
216 const std::
string& getFederateNameNoThrow(
global_federate_id federateID) const noexcept;
221 std::function<
void(
int, const std::
string&, const std::
string&)>
222 logFunction) override final;
224 virtual
void setLogFile(const std::
string& lfile) override final;
226 virtual std::
string query(const std::
string& target,
227 const std::
string& queryStr,
231 std::function<std::
string(const std::
string&)> queryFunction) override;
232 virtual
void setGlobal(const std::
string& valueName, const std::
string& value) override;
233 virtual
bool connect() override final;
237 std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const override final;
254 virtual
bool brokerConnect() = 0;
257 virtual
void brokerDisconnect() = 0;
278 virtual
void addRoute(
route_id rid,
int interfaceId, const std::
string& routeInfo) = 0;
306 FederateState* getFederateCore(const std::
string& federateName);
313 std::
string prevIdentifier;
318 std::unordered_map<std::
string,
route_id>
320 knownExternalEndpoints;
326 void transmitDelayedMessages();
328 void errorRespondDelayedMessages(const std::
string& estring);
347 void checkDependencies();
351 void checkQueryTimeouts();
362 uint16_t getNextAirlockIndex();
364 void loadBasicJsonInfo(
366 const std::function<
void(Json::Value& fedval, const
FedInfo&
fed)>& fedLoader) const;
373 void initializeMapBuilder(const std::
string& request,
376 bool force_ordering) const;
378 std::
string coreQuery(const std::
string& queryStr,
bool force_ordering) const;
382 std::
string quickCoreQueries(const std::
string& queryStr) const;
388 int32_t _global_federation_size = 0;
389 std::atomic<int16_t> delayInitCounter{0};
390 bool filterTiming{
false};
394 gmlc::containers::DualMappedVector<FedInfo, std::string, global_federate_id>
399 std::atomic<int32_t> messageCounter{54};
400 ordered_guarded<HandleManager> handles;
401 HandleManager loopHandles;
402 std::vector<std::pair<global_federate_id, int32_t>> timeBlocks;
406 std::map<int32_t, std::vector<ActionMessage>>
407 delayedTimingMessages;
410 std::atomic<int> queryCounter{1};
412 gmlc::concurrency::DelayedObjects<std::string> activeQueries;
414 std::deque<std::pair<int32_t, decltype(std::chrono::steady_clock::now())>> queryTimeouts;
416 mutable std::vector<std::tuple<JsonMapBuilder, std::vector<ActionMessage>,
bool>> mapBuilders;
418 FilterFederate* filterFed{
nullptr};
419 std::atomic<std::thread::id> filterThread{std::thread::id{}};
420 std::atomic<global_federate_id> filterFedID;
421 std::atomic<uint16_t> nextAirLock{0};
422 std::array<gmlc::containers::AirLock<stx::any>, 4>
424 gmlc::concurrency::TriggerVariable disconnection;
427 void generateFilterFederate();
429 void connectFilterTiming();
431 bool hasTimeBlock(global_federate_id fedID);
433 bool waitCoreRegistration();
435 void deliverMessage(ActionMessage& message);
437 ActionMessage& processMessage(ActionMessage& message);
441 const BasicHandleInfo& createBasicHandle(global_federate_id global_federateId,
442 local_federate_id local_federateId,
444 const std::string& key,
445 const std::string& type,
446 const std::string& units,
452 bool isLocal(global_federate_id global_fedid)
const;
456 route_id getRoute(global_federate_id global_fedid)
const;
458 void checkForNamedInterface(ActionMessage& command);
460 void removeNamedTarget(ActionMessage& command);
463 void setAsUsed(BasicHandleInfo* hand);
465 void registerInterface(ActionMessage& command);
467 void addTargetToInterface(ActionMessage& command);
469 void removeTargetFromInterface(ActionMessage& command);
471 void disconnectInterface(ActionMessage& command);
473 void manageTimeBlocks(
const ActionMessage& command);
481 std::string federateQuery(
const FederateState*
fed,
482 const std::string& queryStr,
483 bool force_ordering)
const;
486 void sendErrorToFederates(
int errorCode,
const std::string& message);
488 bool checkAndProcessDisconnect();
490 void sendDisconnect();
492 void broadcastToFederates(ActionMessage& cmd);
494 int generateMapObjectCounter()
const;
495 friend class TimeoutMonitor;
constexpr Time timeZero
Definition: helics-time.hpp:31
void joinAllThreads()
Definition: BrokerBase.cpp:91
std::string generateJsonString(const Json::Value &block)
Definition: JsonProcessingFunctions.cpp:97
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
virtual iteration_time requestTimeIterative(local_federate_id federateID, Time next, iteration_request iterate) override final
Definition: CommonCore.cpp:746
@ configuring
the broker is in the processing of configuring
virtual void processCommand(ActionMessage &&command) override final
Definition: CommonCore.cpp:2582
virtual void removeRoute(route_id rid)=0
@ terminated
the termination process has started
global_handle getDest() const
Definition: ActionMessage.hpp:149
global_federate_id source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:36
virtual void configureFromVector(std::vector< std::string > args) override final
Definition: CommonCore.cpp:105
void setExtraDestData(int32_t data)
Definition: ActionMessage.hpp:161
bool isRunning() const
Definition: BrokerBase.hpp:181
virtual void removeTarget(interface_handle handle, const std::string &targetToRemove) override final
Definition: CommonCore.cpp:1220
@ HELICS_INITIALIZING
Definition: core-types.hpp:24
virtual ~CommonCore() override
Definition: CommonCore.cpp:266
Time nextAllowedSendTime() const
Definition: FederateState.hpp:310
void setLoggerFunction(std::function< void(int, const std::string &, const std::string &)> logFunction)
Definition: BrokerBase.cpp:513
void setIdentifier(const std::string &name)
Definition: CommonCore.cpp:1914
virtual bool getFlagOption(local_federate_id federateID, int32_t flag) const override final
Definition: CommonCore.cpp:918
virtual void setInterfaceInfo(interface_handle handle, std::string info) override final
Definition: CommonCore.cpp:4175
@ errored
an error was encountered
virtual Time timeRequest(local_federate_id federateID, Time next) override final
Definition: CommonCore.cpp:714
virtual std::unique_ptr< Message > receiveAny(local_federate_id federateID, interface_handle &endpoint_id) override final
Definition: CommonCore.cpp:1780
void setSource(global_handle hand)
Definition: ActionMessage.hpp:94
constexpr uint16_t slow_responding_flag
overload of extra_flag4 indicating a federate, core or broker is slow responding
Definition: flagOperations.hpp:37
interface_handle dest_handle
24 local handle for a targeted message
Definition: ActionMessage.hpp:39
bool useJsonSerialization
Definition: BrokerBase.hpp:128
std::string brokerKey
Definition: BrokerBase.hpp:59
virtual void setLoggingCallback(local_federate_id federateID, std::function< void(int, const std::string &, const std::string &)> logFunction) override final
Definition: CommonCore.cpp:1843
Time timeout
timeout to wait to establish a broker connection before giving up
Definition: BrokerBase.hpp:53
iteration_request
Definition: core-types.hpp:90
bool enable_profiling
indicator that profiling is enabled
Definition: BrokerBase.hpp:129
virtual local_federate_id registerFederate(const std::string &name, const CoreFederateInfo &info) override final
Definition: CommonCore.cpp:596
Definition: core-exceptions.hpp:39
const BasicHandleInfo * getFilter(const std::string &name) const
Definition: HandleManager.cpp:306
virtual void setFlagOption(local_federate_id federateID, int32_t flag, bool flagValue=true) override final
Definition: CommonCore.cpp:876
virtual interface_handle getEndpoint(local_federate_id federateID, const std::string &name) const override final
Definition: CommonCore.cpp:1468
virtual void logMessage(local_federate_id federateID, int logLevel, const std::string &messageToLog) override final
Definition: CommonCore.cpp:1807
interface_handle getInterfaceHandle() const
Definition: BasicHandleInfo.hpp:71
Definition: federate_id.hpp:22
virtual void setIntegerProperty(local_federate_id federateID, int32_t property, int16_t propertyValue) override final
Definition: CommonCore.cpp:806
constexpr base_type baseValue() const
Definition: federate_id.hpp:73
interface_handle source_handle
16 – for local handle or local code
Definition: ActionMessage.hpp:37
Definition: core-exceptions.hpp:94
FederateState * getHandleFederate(interface_handle handle)
Definition: CommonCore.cpp:307
constexpr identififier_base_type global_broker_id_shift
Definition: global_federate_id.hpp:22
iteration_result
Definition: core-types.hpp:81
Definition: global_federate_id.hpp:26
bool hasTimeDependency
set to true if the broker has Time dependencies
Definition: BrokerBase.hpp:119
@ operating
normal operating conditions
bool getFlagValue(int32_t flag) const
Definition: BrokerBase.cpp:501
base helics enumerations for C++ API's, a namespace wrapper for the definitions defined in helics_enu...
@ warning
print/log warning and errors
Definition: loggingHelper.hpp:23
virtual const std::string & getInjectionType(interface_handle handle) const override final
Definition: CommonCore.cpp:1107
Definition: global_federate_id.hpp:68
virtual void setHandleOption(interface_handle handle, int32_t option, int32_t option_value) override final
Definition: CommonCore.cpp:1149
void setAction(action_message_def::action_t newAction)
Definition: ActionMessage.cpp:140
Definition: CommonCore.hpp:73
void setIterationFlags(ActionMessage &command, iteration_request iterate)
Definition: ActionMessage.cpp:950
global_broker_id getGlobalId() const
Definition: BrokerBase.hpp:190
virtual void closeHandle(interface_handle handle) override final
Definition: CommonCore.cpp:1203
@ terminating
the termination process has started
constexpr global_broker_id parent_broker_id
Definition: global_federate_id.hpp:60
virtual void setLogFile(const std::string &lfile) override final
Definition: CommonCore.cpp:1838
void processFilterReturn(ActionMessage &cmd)
Definition: FilterFederate.cpp:242
void setErrorState(int eCode, const std::string &estring)
Definition: BrokerBase.cpp:468
virtual const std::shared_ptr< const data_block > & getValue(interface_handle handle, uint32_t *inputIndex) override final
Definition: CommonCore.cpp:1394
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
virtual void addDestinationTarget(interface_handle handle, const std::string &dest) override final
Definition: CommonCore.cpp:1254
const BasicHandleInfo * getHandleInfo(interface_handle handle) const
Definition: CommonCore.cpp:340
bool hasFilters
flag indicating filters come through the broker
Definition: BrokerBase.hpp:123
virtual const std::string & getExtractionType(interface_handle handle) const override final
Definition: CommonCore.cpp:1131
virtual void setQueryCallback(local_federate_id federateID, std::function< std::string(const std::string &)> queryFunction) override
Definition: CommonCore.cpp:1946
constexpr uint16_t nameless_interface_flag
overload of flag to indicate an interface is nameless
Definition: flagOperations.hpp:58
virtual void addSourceTarget(interface_handle handle, const std::string &name) override final
Definition: CommonCore.cpp:1294
Definition: ActionMessage.hpp:29
int32_t maxIterationCount
the maximum number of iterative loops that are allowed
Definition: BrokerBase.hpp:51
int32_t fileLogLevel
the logging level for logging to a file
Definition: BrokerBase.hpp:44
virtual void setTimeProperty(local_federate_id federateID, int32_t property, Time time) override final
Definition: CommonCore.cpp:832
bool destinationProcessMessage(ActionMessage &command, const BasicHandleInfo *handle)
Definition: FilterFederate.cpp:402
@ helics_sequencing_mode_ordered
Definition: helics_enums.h:337
constexpr base_type baseValue() const
Definition: federate_id.hpp:30
int parseArgs(int argc, char *argv[])
Definition: BrokerBase.cpp:299
virtual interface_handle registerCloningFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out) override final
Definition: CommonCore.cpp:1514
constexpr base_type baseValue() const
Definition: global_federate_id.hpp:34
void unregister()
Definition: CommonCore.cpp:244
virtual void enterInitializingMode(local_federate_id federateID) override final
Definition: CommonCore.cpp:533
virtual int32_t getHandleOption(interface_handle handle, int32_t option) const override final
Definition: CommonCore.cpp:1178
bool allDisconnected() const
Definition: CommonCore.cpp:474
@ disconnected_flag
flag indicating that a broker/federate is disconnected
Definition: flagOperations.hpp:30
constexpr auto versionString
Definition: helicsVersion.hpp:16
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:939
virtual void configureBase()
Definition: BrokerBase.cpp:326
uint16_t counter
26 counter for filter tracking or message counter
Definition: ActionMessage.hpp:40
virtual void setGlobal(const std::string &valueName, const std::string &value) override
Definition: CommonCore.cpp:2351
std::unique_ptr< ForwardingTimeCoordinator > timeCoord
object managing the time control
Definition: BrokerBase.hpp:93
@ configured
the broker itself has been configured and is ready to connect
virtual interface_handle getInput(local_federate_id federateID, const std::string &key) const override final
Definition: CommonCore.cpp:1003
Definition: core-exceptions.hpp:76
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:75
bool no_ping
indicator that the broker is not very responsive to ping requests
Definition: BrokerBase.hpp:125
FilterInfo * createFilter(global_broker_id dest, interface_handle handle, const std::string &key, const std::string &type_in, const std::string &type_out, bool cloning)
Definition: FilterFederate.cpp:676
bool hasActiveTimeDependencies() const
Definition: FilterFederate.cpp:1090
virtual void addRoute(route_id rid, int interfaceId, const std::string &routeInfo)=0
@ helics_property_int_console_log_level
Definition: helics_enums.h:242
virtual bool connect() override final
Definition: CommonCore.cpp:121
operation_state minFederateState() const
Definition: CommonCore.cpp:492
CommonCore() noexcept
Definition: CommonCore.cpp:64
helics_sequencing_mode
Definition: helics_enums.h:333
virtual interface_handle getPublication(local_federate_id federateID, const std::string &key) const override final
Definition: CommonCore.cpp:1049
Definition: core-exceptions.hpp:67
operation_state
Definition: CommonCore.hpp:51
Definition: core-exceptions.hpp:48
std::string lastErrorString
storage for last error string
Definition: BrokerBase.hpp:133
@ has_source_filter_flag
indicator that an endpoint or message has a source filter
Definition: BasicHandleInfo.hpp:27
@ filter
handle to a filter
BasicHandleInfo * findHandle(global_handle id)
Definition: HandleManager.cpp:130
Definition: core/Core.hpp:42
void checkInFlightQueriesForDisconnect()
Definition: CommonCore.cpp:3955
void setLogLevel(int32_t level)
Definition: BrokerBase.cpp:519
Definition: core-exceptions.hpp:85
virtual void dataLink(const std::string &source, const std::string &target) override final
Definition: CommonCore.cpp:1581
const char * commandErrorString(int errorCode)
Definition: ActionMessage.cpp:837
void addActionMessage(const ActionMessage &m)
Definition: BrokerBase.cpp:544
virtual std::string generateLocalAddressString() const =0
@ connecting
the connection process has started
constexpr uint16_t child_flag
overload of extra_flag4 indicating a message is from a child object
Definition: flagOperations.hpp:46
@ iterate_if_needed
indicator that the iterations need to continue
@ connected
the connection process has completed
@ halted
indicator that the simulation has been halted
virtual bool isConfigured() const override final
Definition: CommonCore.cpp:361
Definition: global_federate_id.hpp:171
@ no_iterations
indicator that the iterations have completed
virtual const std::vector< interface_handle > & getValueUpdates(local_federate_id federateID) override final
Definition: CommonCore.cpp:1426
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const override final
Definition: CommonCore.cpp:235
@ created
the broker has been created
std::string payload
Definition: ActionMessage.hpp:44
@ clone_flag
flag indicating the filter is a clone filter or the data needs to be cloned
Definition: flagOperations.hpp:25
void clearActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:90
virtual const std::string & getFederateName(local_federate_id federateID) const override final
Definition: CommonCore.cpp:674
std::atomic< global_broker_id > global_id
the unique identifier for the broker(core or broker)
Definition: BrokerBase.hpp:36
constexpr global_federate_id direct_core_id
Definition: global_federate_id.hpp:121
@ initializing
the enter initialization process has started
bool allInitReady() const
Definition: CommonCore.cpp:459
int32_t messageID
8 – message ID for a variety of purposes
Definition: ActionMessage.hpp:35
const friend std::string & brokerStateName(broker_state_t state)
Definition: BrokerBase.cpp:918
virtual const std::vector< std::shared_ptr< const data_block > > & getAllValues(interface_handle handle) override final
Definition: CommonCore.cpp:1411
virtual void configure(const std::string &configureString) override final
Definition: CommonCore.cpp:73
virtual const std::string & getExtractionUnits(interface_handle handle) const override final
Definition: CommonCore.cpp:1092
global_broker_id global_broker_id_local
Definition: BrokerBase.hpp:38
virtual int16_t getIntegerProperty(local_federate_id federateID, int32_t property) const override final
Definition: CommonCore.cpp:857
@ indicator_flag
flag used for setting values
Definition: flagOperations.hpp:21
@ helics_log_level_data
Definition: helics_enums.h:180
Definition: CommonCore.hpp:57
Definition: BasicHandleInfo.hpp:36
@ use_json_serialization_flag
flag to indicate it should use the json packetization
Definition: flagOperations.hpp:22
local_federate_id local_fed_id
the local federate id of the handle
Definition: BasicHandleInfo.hpp:58
std::vector< std::pair< int, int > > intProps
container for the integer properties
Definition: CoreFederateInfo.hpp:19
virtual void setFilterOperator(interface_handle filter, std::shared_ptr< FilterOperator > callback) override final
Definition: CommonCore.cpp:1890
@ helics_property_int_file_log_level
Definition: helics_enums.h:239
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
std::shared_ptr< Core > findCore(const std::string &name)
Definition: CoreFactory.cpp:267
constexpr interface_handle direct_send_handle
this special handle can be used to directly send a message in a core
Definition: federate_id.hpp:95
bool enteredExecutionMode
flag indicating that the broker has entered execution mode
Definition: BrokerBase.hpp:120
@ helics_property_int_log_level
Definition: helics_enums.h:236
@ HELICS_ERROR
the federation has encountered an error
Definition: core-types.hpp:28
const std::string & fedStateString(federate_state state)
Definition: FederateState.cpp:1645
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:67
constexpr auto NO_ITERATION
Definition: core-types.hpp:101
void processMessageFilter(ActionMessage &cmd)
Definition: FilterFederate.cpp:68
BasicHandleInfo * getHandleInfo(int32_t index)
Definition: HandleManager.cpp:94
BasicHandleInfo * getEndpoint(const std::string &name)
Definition: HandleManager.cpp:204
bool terminate_on_error
flag indicating that the federation should halt on any error
Definition: BrokerBase.hpp:77
std::atomic< int > lastErrorCode
storage for last error code
Definition: BrokerBase.hpp:132
Definition: federate_id.hpp:65
handle_type
Definition: BasicHandleInfo.hpp:16
virtual void transmit(route_id rid, const ActionMessage &command)=0
virtual std::string getErrorMessage() const override final
Definition: CommonCore.cpp:438
@ HELICS_TERMINATING
the federate is in the process of shutting down
Definition: core-types.hpp:27
virtual Time getTimeProperty(local_federate_id federateID, int32_t property) const override final
Definition: CommonCore.cpp:848
virtual void sendEvent(Time time, interface_handle sourceHandle, const std::string &destination, const char *data, uint64_t length) override final
Definition: CommonCore.cpp:1645
virtual void processPriorityCommand(ActionMessage &&command) override final
Definition: CommonCore.cpp:2361
std::string prettyPrintString(const ActionMessage &command)
Definition: ActionMessage.cpp:861
virtual local_federate_id getFederateId(const std::string &name) const override final
Definition: CommonCore.cpp:694
virtual void disconnect() override final
Definition: CommonCore.cpp:212
uint16_t flags
28 set of messageFlags
Definition: ActionMessage.hpp:41
virtual std::string query(const std::string &target, const std::string &queryStr, helics_sequencing_mode mode) override
Definition: CommonCore.cpp:2268
bool isDisconnectCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:276
@ error
indicator that an error has occurred
virtual void setCoreReadyToInit() override final
Definition: CommonCore.cpp:503
@ empty_flag
flag indicating the interface is nameless
Definition: flagOperations.hpp:33
virtual void configureFromArgs(int argc, char *argv[]) override final
Definition: CommonCore.cpp:89
void writeProfilingData()
Definition: BrokerBase.cpp:457
FederateState * getFederate(const std::string &federateName) const
Definition: CommonCore.cpp:301
virtual void makeConnections(const std::string &file) override final
Definition: CommonCore.cpp:1572
virtual int getErrorCode() const override final
Definition: CommonCore.cpp:433
constexpr uint16_t parent_flag
overload of extra_flag3 indicating the message is from a parent object
Definition: flagOperations.hpp:43
virtual void finalize(local_federate_id federateID) override final
Definition: CommonCore.cpp:446
@ HELICS_EXECUTING
the federation has entered execution state and it now advancing in time
Definition: core-types.hpp:26
virtual const std::string & getInterfaceInfo(interface_handle handle) const override final
Definition: CommonCore.cpp:4166
@ error_flag
flag indicating an error condition associated with the command
Definition: flagOperations.hpp:20
constexpr uint16_t non_counting_flag
overload of nameless_interface_flag indicating that a federate should not count in any totals
Definition: flagOperations.hpp:49
@ input
handle to a input interface
Definition: FederateState.hpp:42
void setLoggingFile(const std::string &lfile)
Definition: BrokerBase.cpp:486
Time actionTime
40 the time an action took place or will take place //32
Definition: ActionMessage.hpp:43
void setLogLevels(int32_t consoleLevel, int32_t fileLevel)
Definition: BrokerBase.cpp:537
FederateState * getFederateAt(local_federate_id federateID) const
Definition: CommonCore.cpp:271
virtual void setValue(interface_handle handle, const char *data, uint64_t len) override final
Definition: CommonCore.cpp:1329
log_level
Definition: loggingHelper.hpp:20
virtual bool isOpenToNewFederates() const override final
Definition: CommonCore.cpp:366
@ destination_target
indicator that the target is a destination target
Definition: flagOperations.hpp:17
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
bool debugging
flag indicating operation in a user debugging mode
Definition: BrokerBase.hpp:79
@ error
only print errors
Definition: loggingHelper.hpp:22
Definition: CoreFederateInfo.hpp:16
Definition: helics-time.hpp:47
constexpr local_federate_id local_core_id(-259)
virtual interface_handle registerPublication(local_federate_id federateID, const std::string &key, const std::string &type, const std::string &units) override final
Definition: CommonCore.cpp:1012
virtual const std::string & getIdentifier() const override final
Definition: CommonCore.hpp:214
virtual uint64_t receiveCountAny(local_federate_id federateID) override final
Definition: CommonCore.cpp:1794
Time queryTimeout
Definition: BrokerBase.hpp:55
virtual interface_handle registerFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out) override final
Definition: CommonCore.cpp:1478
Definition: core-exceptions.hpp:29
int32_t consoleLogLevel
the logging level for console display
Definition: BrokerBase.hpp:43
virtual interface_handle getFilter(const std::string &name) const override final
Definition: CommonCore.cpp:1557
virtual void processDisconnect(bool skipUnregister=false) override final
Definition: CommonCore.cpp:183
@ core_flag
flag indicating that message comes from a core vs a broker
Definition: flagOperations.hpp:19
virtual std::unique_ptr< Message > receive(interface_handle destination) override final
Definition: CommonCore.cpp:1767
virtual interface_handle registerEndpoint(local_federate_id federateID, const std::string &name, const std::string &type) override final
Definition: CommonCore.cpp:1435
void setTickForwarding(TickForwardingReasons reason, bool value=true)
Definition: BrokerBase.cpp:838
Definition: TimeoutMonitor.h:27
void setDestination(global_handle hand)
Definition: ActionMessage.hpp:100
virtual bool sendToLogger(global_federate_id federateID, int logLevel, const std::string &name, const std::string &message) const
Definition: BrokerBase.cpp:359
static bool isReasonForTick(std::uint32_t code, TickForwardingReasons reason)
Definition: BrokerBase.hpp:208
virtual iteration_result enterExecutingMode(local_federate_id federateID, iteration_request iterate=NO_ITERATION) override final
Definition: CommonCore.cpp:568
@ endpoint
handle to an endpoint
Definition: application_api/Federate.hpp:26
void processDestFilterReturn(ActionMessage &command)
Definition: FilterFederate.cpp:295
global_broker_id higher_broker_id
the id code of the broker 1 level about this broker
Definition: BrokerBase.hpp:40
global_federate_id dest_id
20 fed_id for a targeted message
Definition: ActionMessage.hpp:38
void saveProfilingData(const std::string &message)
Definition: BrokerBase.cpp:448
@ HELICS_FINISHED
the federation has finished its execution
Definition: core-types.hpp:29
virtual const std::string & getInjectionUnits(interface_handle handle) const override final
Definition: CommonCore.cpp:1070
virtual int32_t getFederationSize() override final
Definition: CommonCore.cpp:705
@ helics_sequencing_mode_fast
Definition: helics_enums.h:335
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:89
virtual void sendMessage(interface_handle sourceHandle, std::unique_ptr< Message > message) override final
Definition: CommonCore.cpp:1670
virtual Time getCurrentTime(local_federate_id federateID) const override final
Definition: CommonCore.cpp:788
gmlc::containers::BlockingPriorityQueue< ActionMessage > actionQueue
primary routing queue
Definition: BrokerBase.hpp:94
int32_t minFederateCount
the minimum number of federates that must connect before entering init mode
Definition: BrokerBase.hpp:45
virtual const std::string & getAddress() const override final
Definition: CommonCore.cpp:175
virtual void send(interface_handle sourceHandle, const std::string &destination, const char *data, uint64_t length) override final
Definition: CommonCore.cpp:1619
std::string identifier
an identifier for the broker
Definition: BrokerBase.hpp:58
virtual void addDependency(local_federate_id federateID, const std::string &federateName) override final
Definition: CommonCore.cpp:1607
constexpr global_broker_id root_broker_id
Definition: global_federate_id.hpp:62
Definition: BrokerBase.hpp:34
@ next_step
indicator that the iterations have completed
virtual bool isConnected() const override final
Definition: CommonCore.cpp:168
bool isPriorityCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:232
@ publication
handle to output interface
@ HELICS_UNKNOWN
unknown state
Definition: core-types.hpp:30
const std::string & state_string(operation_state state)
Definition: CommonCore.cpp:47
virtual void addDestinationFilterToEndpoint(const std::string &filter, const std::string &endpoint) override final
Definition: CommonCore.cpp:1597
std::string errorMessageString(const ActionMessage &command)
Definition: ActionMessage.cpp:849
@ has_dest_filter_flag
indicator that an endpoint or message has a destination filter
Definition: BasicHandleInfo.hpp:29
virtual uint64_t getCurrentReiteration(local_federate_id federateID) const override final
Definition: CommonCore.cpp:797
std::string address
network location of the broker
Definition: BrokerBase.hpp:64
virtual const std::string & getHandleName(interface_handle handle) const override final
Definition: CommonCore.cpp:1061
Definition: core-exceptions.hpp:18
std::string & name
alias payload to a name reference for registration functions
Definition: ActionMessage.hpp:46
virtual void setLoggingLevel(int logLevel) override
Definition: CommonCore.cpp:1829
virtual void addSourceFilterToEndpoint(const std::string &filter, const std::string &endpoint) override final
Definition: CommonCore.cpp:1589
constexpr uint16_t make_flags(unsigned int flag)
Definition: flagOperations.hpp:96
virtual void registerFrequentCommunicationsPair(const std::string &source, const std::string &dest) override final
Definition: CommonCore.cpp:1566
void unregisterCore(const std::string &name)
Definition: CoreFactory.cpp:347
virtual interface_handle registerInput(local_federate_id federateID, const std::string &key, const std::string &type, const std::string &units) override final
Definition: CommonCore.cpp:965
const BasicHandleInfo * getLocalEndpoint(const std::string &name) const
Definition: CommonCore.cpp:345
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:249
virtual uint64_t receiveCount(interface_handle destination) override final
Definition: CommonCore.cpp:1758