helics  2.8.1
core/Broker.hpp
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
9 #include "helics-time.hpp"
10 
11 #include <chrono>
12 #include <functional>
13 #include <string>
14 #include <vector>
15 
16 namespace helics {
18 class 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(const std::string& configureString) = 0;
48  virtual void configureFromArgs(int argc, char* argv[]) = 0;
50  [[deprecated("please use configure instead")]] void
51  initialize(const std::string& configureString)
52  {
53  configure(configureString);
54  }
57  [[deprecated("please use configureFromArgs instead")]] void initializeFromArgs(int argc,
58  char* argv[])
59  {
60  configureFromArgs(argc, argv);
61  }
65  virtual void configureFromVector(std::vector<std::string> args) = 0;
67  virtual const std::string& getIdentifier() const = 0;
69  virtual const std::string& getAddress() const = 0;
71  virtual void setLoggingLevel(int logLevel) = 0;
77  virtual void setLoggingCallback(
78  const std::function<void(int, const std::string&, const std::string&)>& logFunction) = 0;
79 
81  virtual void setLogFile(const std::string& lfile) = 0;
82 
87  virtual bool waitForDisconnect(
88  std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const = 0;
100  virtual std::string query(const std::string& target,
101  const std::string& queryStr,
103 
110  virtual void setGlobal(const std::string& valueName, const std::string& value) = 0;
111 
114  virtual void makeConnections(const std::string& file) = 0;
118  virtual void dataLink(const std::string& source, const std::string& target) = 0;
123  virtual void addSourceFilterToEndpoint(const std::string& filter,
124  const std::string& target) = 0;
129  virtual void addDestinationFilterToEndpoint(const std::string& filter,
130  const std::string& target) = 0;
131 
133  virtual void setTimeBarrier(Time barrierTime) = 0;
134 
136  virtual void clearTimeBarrier() = 0;
137 
143  virtual void globalError(int32_t errorCode, const std::string& errorString) = 0;
144 };
145 } // namespace helics
helics-time.hpp
helics::Broker::Broker
Broker()=default
helics::Broker::getIdentifier
virtual const std::string & getIdentifier() const =0
helics::Broker::setLogFile
virtual void setLogFile(const std::string &lfile)=0
helics::Broker::clearTimeBarrier
virtual void clearTimeBarrier()=0
helics::Broker::~Broker
virtual ~Broker()=default
helics::Broker::query
virtual std::string query(const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)=0
helics::Broker::isRoot
virtual bool isRoot() const =0
helics::Broker::configureFromArgs
virtual void configureFromArgs(int argc, char *argv[])=0
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
helics::Broker::waitForDisconnect
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const =0
helics::Broker::globalError
virtual void globalError(int32_t errorCode, const std::string &errorString)=0
helics::Broker::addDestinationFilterToEndpoint
virtual void addDestinationFilterToEndpoint(const std::string &filter, const std::string &target)=0
helics::Broker::makeConnections
virtual void makeConnections(const std::string &file)=0
helics_sequencing_mode
helics_sequencing_mode
Definition: helics_enums.h:333
helics::Broker::initializeFromArgs
void initializeFromArgs(int argc, char *argv[])
Definition: core/Broker.hpp:57
helics::Broker::isOpenToNewFederates
virtual bool isOpenToNewFederates() const =0
helics::Broker::connect
virtual bool connect()=0
helics::Broker::addSourceFilterToEndpoint
virtual void addSourceFilterToEndpoint(const std::string &filter, const std::string &target)=0
helics::Broker::initialize
void initialize(const std::string &configureString)
Definition: core/Broker.hpp:51
helics::Broker::configure
virtual void configure(const std::string &configureString)=0
helics::Broker::dataLink
virtual void dataLink(const std::string &source, const std::string &target)=0
helics::Broker::getAddress
virtual const std::string & getAddress() const =0
helics::Broker::setTimeBarrier
virtual void setTimeBarrier(Time barrierTime)=0
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::Broker::disconnect
virtual void disconnect()=0
helics::Broker::setAsRoot
virtual void setAsRoot()=0
helics::Broker::isConnected
virtual bool isConnected() const =0
helics::Broker
Definition: core/Broker.hpp:18
helics_sequencing_mode_fast
@ helics_sequencing_mode_fast
Definition: helics_enums.h:335
helics::Broker::setLoggingCallback
virtual void setLoggingCallback(const std::function< void(int, const std::string &, const std::string &)> &logFunction)=0
helics::Broker::setLoggingLevel
virtual void setLoggingLevel(int logLevel)=0
helics::Broker::setGlobal
virtual void setGlobal(const std::string &valueName, const std::string &value)=0
helics::Broker::configureFromVector
virtual void configureFromVector(std::vector< std::string > args)=0