helics  3.5.2
application_api/CombinationFederate.hpp
1 /*
2 Copyright (c) 2017-2024,
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 "MessageFederate.hpp"
10 #include "ValueFederate.hpp"
11 #include "helicsTypes.hpp"
12 
13 #include <memory>
14 #include <string>
15 
16 namespace helics {
18 class HELICS_CXX_EXPORT CombinationFederate: public ValueFederate, public MessageFederate {
19  public:
22 
28  explicit CombinationFederate(std::string_view fedName, const FederateInfo& fedInfo);
29 
36  CombinationFederate(std::string_view fedName,
37  const std::shared_ptr<Core>& core,
38  const FederateInfo& fedInfo = FederateInfo{});
39 
46  CombinationFederate(std::string_view fedName,
47  CoreApp& core,
48  const FederateInfo& fedInfo = FederateInfo{});
49 
55  CombinationFederate(std::string_view fedName, const std::string& configString);
56 
61  explicit CombinationFederate(const std::string& configString);
62 
73  virtual void setFlagOption(int flagIndex, bool flagValue = true) override;
74  virtual void disconnect() override;
75 
76  protected:
77  virtual void updateTime(Time newTime, Time oldTime) override;
78  virtual void startupToInitializeStateTransition() override;
79  virtual void initializeToExecuteStateTransition(iteration_time result) override;
80  virtual std::string localQuery(std::string_view queryStr) const override;
81 
82  public:
83  virtual void registerInterfaces(const std::string& configString) override;
84 };
85 } // namespace helics
Definition: application_api/CombinationFederate.hpp:18
CombinationFederate(CombinationFederate &&fed) noexcept
CombinationFederate & operator=(const CombinationFederate &fed)=delete
CombinationFederate(const CombinationFederate &fed)=delete
CombinationFederate & operator=(CombinationFederate &&fed) noexcept
Definition: application_api/CoreApp.hpp:25
Definition: FederateInfo.hpp:29
Definition: application_api/MessageFederate.hpp:24
Definition: application_api/ValueFederate.hpp:28
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
Definition: helicsTime.hpp:43