 |
helics
2.8.1
|
9 #include "../core/Core.hpp"
10 #include "Federate.hpp"
17 class FilterOperations;
33 #define EMPTY_STRING std::string()
45 bool disableAssign =
false;
48 std::shared_ptr<FilterOperations>
54 explicit Filter(
Federate* ffed,
const std::string& filtName = EMPTY_STRING);
60 const std::string& filtName = EMPTY_STRING);
62 explicit Filter(
Core* cr,
const std::string& filtName = EMPTY_STRING);
64 virtual ~
Filter() =
default;
73 bool isValid()
const {
return handle.isValid(); }
77 void setOperator(std::shared_ptr<FilterOperator> mo);
84 const std::string&
getName()
const {
return name; }
86 const std::string&
getKey()
const;
88 const std::string& getInjectionType()
const;
90 const std::string& getExtractionType()
const;
93 const std::string& getInfo()
const;
95 void setInfo(
const std::string& info);
101 virtual void set(
const std::string& property,
double val);
107 virtual void setString(
const std::string& property,
const std::string& val);
109 virtual void addSourceTarget(
const std::string& sourceName);
111 virtual void addDestinationTarget(
const std::string& destinationName);
113 void addTarget(
const std::string& target) { addSourceTarget(target); }
116 virtual void removeTarget(
const std::string& sourceName);
118 void setOption(int32_t option, int32_t value);
125 int32_t getOption(int32_t option)
const;
129 void setFilterOperations(std::shared_ptr<FilterOperations> filterOps);
149 const std::string& filtName = EMPTY_STRING);
164 void addDeliveryEndpoint(
const std::string& endpoint);
167 void removeDeliveryEndpoint(
const std::string& endpoint);
169 virtual void setString(
const std::string& property,
const std::string& val)
override;
196 const std::string& name = EMPTY_STRING);
205 HELICS_CXX_EXPORT std::unique_ptr<Filter>
215 HELICS_CXX_EXPORT std::unique_ptr<Filter>
228 const std::string& delivery,
229 const std::string& name = EMPTY_STRING);
243 const std::string& delivery,
244 const std::string& name = EMPTY_STRING);
254 HELICS_CXX_EXPORT std::unique_ptr<CloningFilter>
257 const std::string& delivery,
258 const std::string& name = EMPTY_STRING);
268 HELICS_CXX_EXPORT std::unique_ptr<CloningFilter>
271 const std::string& delivery,
272 const std::string& name = EMPTY_STRING);
@ helics_filter_type_reroute
Definition: helics_enums.h:319
Definition: Filters.hpp:135
Federate * fed
pointer to fed
Definition: Filters.hpp:42
Filter & registerFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1241
virtual void setHandleOption(interface_handle handle, int32_t option, int32_t option_value)=0
virtual const std::string & getInterfaceInfo(interface_handle handle) const =0
CloningFilter & operator=(CloningFilter &&filt)=default
@ helics_filter_type_clone
Definition: helics_enums.h:321
virtual void addDestinationTarget(interface_handle handle, const std::string &dest)=0
virtual const std::string & getExtractionType(interface_handle handle) const =0
void setInfo(const std::string &info)
Definition: Filters.cpp:163
interface_handle getHandle() const
Definition: Filters.hpp:80
virtual void set(const std::string &property, double val)
Definition: Filters.cpp:168
virtual void addSourceTarget(interface_handle handle, const std::string &name)=0
@ helics_filter_type_random_drop
Definition: helics_enums.h:316
virtual const std::string & getInjectionType(interface_handle handle) const =0
Definition: Filters.hpp:39
std::string getKey(const Json::Value &element)
Definition: JsonProcessingFunctions.cpp:90
int32_t getOption(int32_t option) const
Definition: Filters.cpp:256
virtual void setString(const std::string &property, const std::string &val) override
Definition: Filters.cpp:266
@ helics_filter_type_random_delay
Definition: helics_enums.h:314
filter_types
Definition: Filters.hpp:21
virtual void removeTarget(interface_handle handle, const std::string &targetToRemove)=0
Definition: core/Core.hpp:42
virtual void closeHandle(interface_handle handle)=0
Definition: application_api/CoreApp.hpp:25
const std::string & getName() const
Definition: Filters.hpp:84
base helics enumerations for C and C++ API's
virtual interface_handle registerFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
bool isValid() const
Definition: Filters.hpp:73
Core * corePtr
the Core to use
Definition: Filters.hpp:41
virtual void addSourceTarget(const std::string &sourceName)
Definition: Filters.cpp:221
@ helics_filter_type_delay
Definition: helics_enums.h:312
virtual void removeTarget(const std::string &sourceName)
Definition: Filters.cpp:238
filter_types filterTypeFromString(const std::string &filterType) noexcept
Definition: Filters.cpp:37
std::shared_ptr< Core > getCopyofCorePointer() const
Definition: application_api/CoreApp.hpp:144
void setOperator(std::shared_ptr< FilterOperator > mo)
Definition: Filters.cpp:117
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
Definition: federate_id.hpp:65
CloningFilter & make_cloning_filter(filter_types type, Federate *mFed, const std::string &delivery, const std::string &name)
Definition: Filters.cpp:339
CloningFilter & registerGlobalCloningFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1270
std::string name
The name of the filter.
Definition: Filters.hpp:46
void removeDeliveryEndpoint(const std::string &endpoint)
Definition: Filters.cpp:261
const std::string & getInjectionType() const
Definition: Filters.cpp:142
interface_handle handle
the handle as generated by the Federate
Definition: Filters.hpp:43
const std::string & getKey() const
Definition: Filters.cpp:134
virtual const std::string & getHandleName(interface_handle handle) const =0
CloningFilter & registerCloningFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1252
Definition: FilterFederateManager.hpp:23
void addOperations(Filter *filt, filter_types type, Core *)
Definition: Filters.cpp:52
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
void addTarget(const std::string &target)
Definition: Filters.hpp:113
void close()
Definition: Filters.cpp:250
void addDeliveryEndpoint(const std::string &endpoint)
Definition: Filters.cpp:233
virtual void setString(const std::string &property, const std::string &val)
Definition: Filters.cpp:175
const std::string & getExtractionType() const
Definition: Filters.cpp:150
Definition: application_api/Federate.hpp:44
const std::shared_ptr< Core > & getCorePointer()
Definition: application_api/Federate.hpp:548
virtual void setFilterOperator(interface_handle filter, std::shared_ptr< FilterOperator > callback)=0
virtual void addDestinationTarget(const std::string &destinationName)
Definition: Filters.cpp:227
Filter & registerGlobalFilter(const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
Definition: Federate.cpp:1263
virtual void setInterfaceInfo(interface_handle handle, std::string info)=0
void setOption(int32_t option, int32_t value)
Definition: Filters.cpp:243
@ helics_filter_type_custom
Definition: helics_enums.h:310
interface_visibility
Definition: helicsTypes.hpp:38
Filter & make_filter(filter_types type, Federate *mFed, const std::string &name)
Definition: Filters.cpp:287
const std::string & getInfo() const
Definition: Filters.cpp:158
@ helics_filter_type_firewall
Definition: helics_enums.h:324
virtual int32_t getHandleOption(interface_handle handle, int32_t option) const =0
virtual interface_handle registerCloningFilter(const std::string &filterName, const std::string &type_in, const std::string &type_out)=0
bool isCloningFilter() const
Definition: Filters.hpp:75
void setFilterOperations(std::shared_ptr< FilterOperations > filterOps)
Definition: Filters.cpp:124