helics  2.8.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(filter_types type, const std::string& name);
57 
63  CloningFilter& registerCloningFilter(filter_types 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();
77 
78  private:
79  Core* coreObject = nullptr;
81  Federate* fed = nullptr;
82  const local_federate_id fedID;
83 };
84 } // namespace helics
helics::CloningFilter
Definition: Filters.hpp:135
helics::local_federate_id
Definition: federate_id.hpp:22
helics::Filter
Definition: Filters.hpp:39
helics::filter_types
filter_types
Definition: Filters.hpp:21
helics::Core
Definition: core/Core.hpp:42
helics::Core::closeHandle
virtual void closeHandle(interface_handle handle)=0
helics::FilterFederateManager::FilterFederateManager
FilterFederateManager(Core *coreObj, Federate *fFed, local_federate_id id)
Definition: FilterFederateManager.cpp:16
helics::RegistrationFailure
Definition: core-exceptions.hpp:85
helics::FilterFederateManager::getFilter
Filter & getFilter(const std::string &name)
Definition: FilterFederateManager.cpp:74
helics::Core::registerFilter
virtual interface_handle registerFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
helics::FilterFederateManager::registerCloningFilter
CloningFilter & registerCloningFilter(const std::string &name, const std::string &type_in, const std::string &type_out)
Definition: FilterFederateManager.cpp:41
fed
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
helics::make_cloning_filter
CloningFilter & make_cloning_filter(filter_types type, Federate *mFed, const std::string &delivery, const std::string &name)
Definition: Filters.cpp:339
helics::Core::getHandleName
virtual const std::string & getHandleName(interface_handle handle) const =0
helics::FilterFederateManager
Definition: FilterFederateManager.hpp:23
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::FilterFederateManager::getFilterCount
int getFilterCount() const
Definition: FilterFederateManager.cpp:105
helics::FilterFederateManager::closeAllFilters
void closeAllFilters()
Definition: FilterFederateManager.cpp:110
core-exceptions.hpp
helics::Federate
Definition: application_api/Federate.hpp:44
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:26
helics::FilterFederateManager::~FilterFederateManager
~FilterFederateManager()
helics::make_filter
Filter & make_filter(filter_types type, Federate *mFed, const std::string &name)
Definition: Filters.cpp:287
helics::Core::registerCloningFilter
virtual interface_handle registerCloningFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
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:249