helics 3.7.0
Loading...
Searching...
No Matches
core/Broker.hpp
1/*
2Copyright (c) 2017-2026,
3Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Energy
4Innovation LLC. See the top-level NOTICE for additional details. All rights reserved.
5SPDX-License-Identifier: BSD-3-Clause
6*/
7#pragma once
8
9#include "helicsTime.hpp"
10
11#include <chrono>
12#include <functional>
13#include <string>
14#include <vector>
15
16namespace helics {
18class Broker {
19 public:
21 Broker() = default;
23 virtual ~Broker() = default;
24
27 virtual bool connect() = 0;
30 virtual void disconnect() = 0;
31
33 virtual bool isConnected() const = 0;
36 virtual void setAsRoot() = 0;
39 virtual bool isRoot() const = 0;
40
43 virtual bool isOpenToNewFederates() const = 0;
45 virtual void configure(std::string_view configureString) = 0;
48 virtual void configureFromArgs(int argc, char* argv[]) = 0;
52 virtual void configureFromVector(std::vector<std::string> args) = 0;
54 virtual const std::string& getIdentifier() const = 0;
56 virtual const std::string& getAddress() const = 0;
58 virtual void setLoggingLevel(int logLevel) = 0;
64 virtual void setLoggingCallback(
65 std::function<void(int, std::string_view, std::string_view)> logFunction) = 0;
66
68 virtual void setLogFile(std::string_view lfile) = 0;
69
74 virtual bool waitForDisconnect(
75 std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const = 0;
87 virtual std::string query(std::string_view target,
88 std::string_view queryStr,
90
98 virtual void setGlobal(std::string_view valueName, std::string_view value) = 0;
99
108 virtual void sendCommand(std::string_view target,
109 std::string_view commandStr,
111
114 virtual void makeConnections(const std::string& file) = 0;
118 virtual void linkEndpoints(std::string_view source, std::string_view target) = 0;
122 virtual void dataLink(std::string_view source, std::string_view target) = 0;
127 virtual void addSourceFilterToEndpoint(std::string_view filter, std::string_view target) = 0;
132 virtual void addDestinationFilterToEndpoint(std::string_view filter,
133 std::string_view target) = 0;
139 virtual void addAlias(std::string_view interfaceKey, std::string_view alias) = 0;
141 virtual void setTimeBarrier(Time barrierTime) = 0;
142
144 virtual void clearTimeBarrier() = 0;
145
151 virtual void globalError(int32_t errorCode, std::string_view errorString) = 0;
152};
153} // namespace helics
Definition core/Broker.hpp:18
virtual void makeConnections(const std::string &file)=0
virtual bool isOpenToNewFederates() const =0
virtual void addAlias(std::string_view interfaceKey, std::string_view alias)=0
virtual ~Broker()=default
virtual void configureFromArgs(int argc, char *argv[])=0
virtual void configure(std::string_view configureString)=0
virtual void sendCommand(std::string_view target, std::string_view commandStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)=0
virtual const std::string & getIdentifier() const =0
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const =0
virtual void setLoggingCallback(std::function< void(int, std::string_view, std::string_view)> logFunction)=0
virtual void linkEndpoints(std::string_view source, std::string_view target)=0
virtual void setAsRoot()=0
virtual std::string query(std::string_view target, std::string_view queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)=0
virtual void globalError(int32_t errorCode, std::string_view errorString)=0
virtual void setLoggingLevel(int logLevel)=0
virtual void addSourceFilterToEndpoint(std::string_view filter, std::string_view target)=0
virtual void addDestinationFilterToEndpoint(std::string_view filter, std::string_view target)=0
virtual bool connect()=0
virtual void setGlobal(std::string_view valueName, std::string_view value)=0
virtual void setLogFile(std::string_view lfile)=0
virtual void setTimeBarrier(Time barrierTime)=0
virtual bool isRoot() const =0
virtual bool isConnected() const =0
virtual void clearTimeBarrier()=0
virtual void dataLink(std::string_view source, std::string_view target)=0
virtual void disconnect()=0
Broker()=default
virtual void configureFromVector(std::vector< std::string > args)=0
virtual const std::string & getAddress() const =0
HelicsSequencingModes
Definition helics_enums.h:429
@ HELICS_SEQUENCING_MODE_FAST
Definition helics_enums.h:431
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition AsyncFedCallInfo.hpp:14
TimeRepresentation< count_time< 9 > > Time
Definition helicsTime.hpp:27