helics  3.3.0
ConnectorFederateManager.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 "Filters.hpp"
11 #include "Translator.hpp"
12 #include "gmlc/containers/StringMappedVector.hpp"
13 
14 #include <memory>
15 #include <string>
16 
17 namespace helics {
18 class Core;
19 class Federate;
25  public:
31 
38  Filter&
39  registerFilter(std::string_view name, std::string_view type_in, std::string_view type_out);
40 
47  CloningFilter& registerCloningFilter(std::string_view name,
48  std::string_view type_in,
49  std::string_view type_out);
50 
56  Filter& registerFilter(FilterTypes type, std::string_view name);
57 
63  CloningFilter& registerCloningFilter(FilterTypes type, std::string_view name);
64 
68  Filter& getFilter(std::string_view name);
69  const Filter& getFilter(std::string_view name) const;
70  Filter& getFilter(int index);
71  const Filter& getFilter(int index) const;
72 
79  Translator& registerTranslator(std::string_view name,
80  std::string_view type_in,
81  std::string_view type_out);
82 
86  Translator& getTranslator(std::string_view name);
87  const Translator& getTranslator(std::string_view name) const;
88  Translator& getTranslator(int index);
89  const Translator& getTranslator(int index) const;
90 
92  int getFilterCount() const;
94  int getTranslatorCount() const;
96  void closeAllConnectors();
100  void disconnect();
101 
102  private:
103  Core* coreObject{nullptr};
106  Federate* fed = nullptr;
107  const LocalFederateId fedID;
108 };
109 } // namespace helics
helics::CloningFilter
Definition: Filters.hpp:97
helics::make_cloning_filter
CloningFilter & make_cloning_filter(FilterTypes type, Federate *mFed, std::string_view delivery, std::string_view name)
Definition: Filters.cpp:252
helics::ConnectorFederateManager::closeAllConnectors
void closeAllConnectors()
Definition: ConnectorFederateManager.cpp:169
helics::Core::closeHandle
virtual void closeHandle(InterfaceHandle handle)=0
helics::ConnectorFederateManager::registerCloningFilter
CloningFilter & registerCloningFilter(std::string_view name, std::string_view type_in, std::string_view type_out)
Definition: ConnectorFederateManager.cpp:62
helics::Core::registerCloningFilter
virtual InterfaceHandle registerCloningFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out)=0
helics::Filter
Definition: Filters.hpp:39
helics::ConnectorFederateManager
Definition: ConnectorFederateManager.hpp:24
helics::Core
Definition: core/Core.hpp:41
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helics::Translator
Definition: application_api/Translator.hpp:35
helics::ConnectorFederateManager::~ConnectorFederateManager
~ConnectorFederateManager()
helics::ConnectorFederateManager::getFilterCount
int getFilterCount() const
Definition: ConnectorFederateManager.cpp:129
helics::Core::registerTranslator
virtual InterfaceHandle registerTranslator(std::string_view translatorName, std::string_view endpointType, std::string_view units)=0
helics::ConnectorFederateManager::registerFilter
Filter & registerFilter(std::string_view name, std::string_view type_in, std::string_view type_out)
Definition: ConnectorFederateManager.cpp:26
helics::ConnectorFederateManager::ConnectorFederateManager
ConnectorFederateManager(Core *coreObj, Federate *fFed, LocalFederateId id)
Definition: ConnectorFederateManager.cpp:17
helics::ConnectorFederateManager::disconnect
void disconnect()
Definition: ConnectorFederateManager.cpp:197
helics::ConnectorFederateManager::getFilter
Filter & getFilter(std::string_view name)
Definition: ConnectorFederateManager.cpp:98
helics::ConnectorFederateManager::disconnectAllConnectors
void disconnectAllConnectors()
Definition: ConnectorFederateManager.cpp:186
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::Core::getHandleName
virtual const std::string & getHandleName(InterfaceHandle handle) const =0
helics::ConnectorFederateManager::registerTranslator
Translator & registerTranslator(std::string_view name, std::string_view type_in, std::string_view type_out)
Definition: ConnectorFederateManager.cpp:45
helics::LocalFederateId
Definition: LocalFederateId.hpp:22
helics::make_filter
Filter & make_filter(FilterTypes type, Federate *mFed, std::string_view name)
Definition: Filters.cpp:202
helics::Core::registerFilter
virtual InterfaceHandle registerFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out)=0
core-exceptions.hpp
helics::Federate
Definition: application_api/Federate.hpp:48
helics::ConnectorFederateManager::getTranslator
Translator & getTranslator(std::string_view name)
Definition: ConnectorFederateManager.cpp:134
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helics::EmptyCore
Definition: EmptyCore.hpp:19
helics::ConnectorFederateManager::getTranslatorCount
int getTranslatorCount() const
Definition: ConnectorFederateManager.cpp:165
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:171
helics::FilterTypes
FilterTypes
Definition: Filters.hpp:21