helics  3.0.1
FilterFederateManager.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 "../common/GuardedTypes.hpp"
10 #include "Filters.hpp"
11 #include "gmlc/containers/MappedVector.hpp"
12 
13 #include <memory>
14 #include <string>
15 
16 namespace helics {
17 class Core;
18 class Federate;
24  public:
30 
37  Filter& registerFilter(const std::string& name,
38  const std::string& type_in,
39  const std::string& type_out);
40 
47  CloningFilter& registerCloningFilter(const std::string& name,
48  const std::string& type_in,
49  const std::string& type_out);
50 
56  Filter& registerFilter(FilterTypes type, const std::string& name);
57 
63  CloningFilter& registerCloningFilter(FilterTypes type, const std::string& name);
64 
68  Filter& getFilter(const std::string& name);
69  const Filter& getFilter(const std::string& name) const;
70  Filter& getFilter(int index);
71  const Filter& getFilter(int index) const;
72 
74  int getFilterCount() const;
76  void closeAllFilters();
78  void disconnectAllFilters();
79 
80  private:
81  Core* coreObject = nullptr;
83  Federate* fed = nullptr;
84  const LocalFederateId fedID;
85 };
86 } // namespace helics
helics::CloningFilter
Definition: Filters.hpp:99
helics::Core::closeHandle
virtual void closeHandle(InterfaceHandle handle)=0
helics::FilterFederateManager::disconnectAllFilters
void disconnectAllFilters()
Definition: FilterFederateManager.cpp:121
helics::Filter
Definition: Filters.hpp:39
helics::Core
Definition: core/Core.hpp:42
helics::RegistrationFailure
Definition: core-exceptions.hpp:84
helics::FilterFederateManager::getFilter
Filter & getFilter(const std::string &name)
Definition: FilterFederateManager.cpp:74
helics::FilterFederateManager::registerCloningFilter
CloningFilter & registerCloningFilter(const std::string &name, const std::string &type_in, const std::string &type_out)
Definition: FilterFederateManager.cpp:41
helics::Core::registerFilter
virtual InterfaceHandle registerFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
helics::FilterFederateManager::FilterFederateManager
FilterFederateManager(Core *coreObj, Federate *fFed, LocalFederateId id)
Definition: FilterFederateManager.cpp:16
helics::FilterFederateManager
Definition: FilterFederateManager.hpp:23
helics::make_cloning_filter
CloningFilter & make_cloning_filter(FilterTypes type, Federate *mFed, const std::string &delivery, const std::string &name)
Definition: Filters.cpp:265
helics::make_filter
Filter & make_filter(FilterTypes type, Federate *mFed, const std::string &name)
Definition: Filters.cpp:215
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::FilterFederateManager::getFilterCount
int getFilterCount() const
Definition: FilterFederateManager.cpp:105
helics::LocalFederateId
Definition: LocalFederateId.hpp:22
helics::FilterFederateManager::closeAllFilters
void closeAllFilters()
Definition: FilterFederateManager.cpp:110
core-exceptions.hpp
helics::Federate
Definition: application_api/Federate.hpp:47
helics::Core::registerCloningFilter
virtual InterfaceHandle registerCloningFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helics::FilterFederateManager::~FilterFederateManager
~FilterFederateManager()
helics::FilterFederateManager::registerFilter
Filter & registerFilter(const std::string &name, const std::string &type_in, const std::string &type_out)
Definition: FilterFederateManager.cpp:22
helics::isValidIndex
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:132
helics::FilterTypes
FilterTypes
Definition: Filters.hpp:21