9#include "../core/Core.hpp"
10#include "Federate.hpp"
17class FilterOperations;
33#define EMPTY_STRING std::string_view()
42 bool disableAssign =
false;
44 std::shared_ptr<FilterOperations>
50 explicit Filter(
Federate* ffed, std::string_view filtName = EMPTY_STRING);
58 explicit Filter(
Core* core, std::string_view filtName = EMPTY_STRING);
71 void setOperator(std::shared_ptr<FilterOperator> filterOp);
73 virtual const std::string&
getDisplayName()
const override {
return getName(); }
79 virtual void set(std::string_view property,
double val);
85 virtual void setString(std::string_view property, std::string_view val);
90 virtual std::string getString(std::string_view property);
95 virtual double getProperty(std::string_view property);
98 void addTarget(std::string_view target) { addSourceTarget(target); }
101 void setFilterType(std::int32_t type);
105 void setFilterOperations(std::shared_ptr<FilterOperations> filterOps);
125 std::string_view filtName = EMPTY_STRING);
140 void addDeliveryEndpoint(std::string_view endpoint);
143 void removeDeliveryEndpoint(std::string_view endpoint);
145 virtual void setString(std::string_view property, std::string_view val)
override;
148 friend class FilterFederateManager;
172 std::string_view name = EMPTY_STRING);
181HELICS_CXX_EXPORT std::unique_ptr<Filter>
191HELICS_CXX_EXPORT std::unique_ptr<Filter>
204 std::string_view delivery,
205 std::string_view name = EMPTY_STRING);
219 std::string_view delivery,
220 std::string_view name = EMPTY_STRING);
230HELICS_CXX_EXPORT std::unique_ptr<CloningFilter>
233 std::string_view delivery,
234 std::string_view name = EMPTY_STRING);
244HELICS_CXX_EXPORT std::unique_ptr<CloningFilter>
247 std::string_view delivery,
248 std::string_view name = EMPTY_STRING);
Definition Filters.hpp:111
CloningFilter & operator=(CloningFilter &&filt)=default
CloningFilter & operator=(const CloningFilter &filt)=default
CloningFilter(const CloningFilter &filt)=default
CloningFilter(CloningFilter &&filt)=default
Definition application_api/CoreApp.hpp:25
Definition core/Core.hpp:41
Definition application_api/Federate.hpp:48
Definition Filters.hpp:39
Filter(const Filter &filt)=default
virtual ~Filter()=default
Filter & operator=(const Filter &filt)=default
void addTarget(std::string_view target)
Definition Filters.hpp:98
bool isCloningFilter() const
Definition Filters.hpp:69
virtual const std::string & getDisplayName() const override
Definition Filters.hpp:73
Definition LocalFederateId.hpp:65
Definition application_api/Federate.hpp:880
base helics enumerations for C and C++ API's
@ HELICS_FILTER_TYPE_FIREWALL
Definition helics_enums.h:410
@ HELICS_FILTER_TYPE_RANDOM_DELAY
Definition helics_enums.h:399
@ HELICS_FILTER_TYPE_REROUTE
Definition helics_enums.h:404
@ HELICS_FILTER_TYPE_CLONE
Definition helics_enums.h:407
@ HELICS_FILTER_TYPE_CUSTOM
Definition helics_enums.h:395
@ HELICS_FILTER_TYPE_RANDOM_DROP
Definition helics_enums.h:401
@ HELICS_FILTER_TYPE_DELAY
Definition helics_enums.h:397
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition AsyncFedCallInfo.hpp:14
Filter & make_filter(FilterTypes type, Federate *mFed, std::string_view name)
Definition Filters.cpp:224
void addOperations(Filter *filt, FilterTypes type, Core *)
Definition Filters.cpp:54
CloningFilter & make_cloning_filter(FilterTypes type, Federate *mFed, std::string_view delivery, std::string_view name)
Definition Filters.cpp:274
FilterTypes
Definition Filters.hpp:21
FilterTypes filterTypeFromString(std::string_view filterType) noexcept
Definition Filters.cpp:34
InterfaceVisibility
Definition helicsTypes.hpp:40