22 #ifndef __M2ETIS_PUBSUB_FILTER_GENERALBOOLEANEXPRESSIONSPREPROCESSVISITOR_H__
23 #define __M2ETIS_PUBSUB_FILTER_GENERALBOOLEANEXPRESSIONSPREPROCESSVISITOR_H__
33 template<
typename EventType,
typename NetworkType>
34 class GeneralBooleanExpressionsPreProcessVisitor :
public FilterVisitor<EventType> {
43 M2ETIS_THROW_API(
"GeneralBooleanExpressionsPreProcessVisitor",
"FilterExp not allowed in general boolean expressions filter strategy.");
55 attribute_type_information.predicate_indexes_ = predicate_indexes_;
56 attribute_type_information.predicate_subscription_association_table_ = predicate_subscription_association_table_;
57 attribute_type_information.predicate_identifier_factory_ = predicate_identifier_factory_;
58 attribute_type_information.current_subscription_id_ = current_subscription_id_;
65 attribute_type_information(filter, general_boolean_expressions_ptr);
66 delete general_boolean_expressions_ptr;
71 attribute_type_information(filter, general_boolean_expressions_ptr);
72 delete general_boolean_expressions_ptr;
77 attribute_type_information(filter, general_boolean_expressions_ptr);
78 delete general_boolean_expressions_ptr;
83 attribute_type_information(filter, general_boolean_expressions_ptr);
84 delete general_boolean_expressions_ptr;
89 attribute_type_information(filter, general_boolean_expressions_ptr);
90 delete general_boolean_expressions_ptr;
95 attribute_type_information(filter, general_boolean_expressions_ptr);
96 delete general_boolean_expressions_ptr;
101 attribute_type_information(filter, general_boolean_expressions_ptr);
102 delete general_boolean_expressions_ptr;
107 attribute_type_information(filter, general_boolean_expressions_ptr);
108 delete general_boolean_expressions_ptr;
115 std::vector<std::shared_ptr<PredicateIndex<EventType> > > * predicate_indexes_;
117 std::map<PredicateIdentifierFactory::PredicateID, std::multiset<SubscriptionIdentifierFactory::SubscriptionID> > * predicate_subscription_association_table_;
virtual void getAttributeType(const NotEqualsAttributeFilter< EventType, int > *filter) override
virtual void getAttributeType(const LessThanAttributeFilter< EventType, std::string > *filter) override
virtual void getAttributeType(const GreaterThanAttributeFilter< EventType, std::string > *filter) override
virtual void getAttributeType(const LessThanAttributeFilter< EventType, int > *filter) override
virtual void getAttributeType(const GreaterThanAttributeFilter< EventType, int > *filter) override
std::vector< bool >::size_type PredicateID
GeneralBooleanExpressionsPreProcessVisitor(std::vector< std::shared_ptr< PredicateIndex< EventType > > > *predicate_indexes, std::map< PredicateIdentifierFactory::PredicateID, std::multiset< SubscriptionIdentifierFactory::SubscriptionID > > *predicate_subscription_association_table, SubscriptionIdentifierFactory::SubscriptionID current_subscription_id, PredicateIdentifierFactory *predicate_identifier_factory)
virtual ~GeneralBooleanExpressionsPreProcessVisitor()
virtual void Visit(const FilterExp< EventType > *) override
virtual void getAttributeType(const NotEqualsAttributeFilter< EventType, std::string > *filter) override
virtual void getAttributeType(const EqualsAttributeFilter< EventType, std::string > *filter) override
virtual void getAttributeType(const EqualsAttributeFilter< EventType, int > *filter) override
virtual void Visit(const Predicate< EventType > *current_predicate) override
#define M2ETIS_THROW_API(module, message)
throws on wrong API usage
virtual void Visit(const OrExp< EventType > *orexp) override
virtual void getAttributeType(FilterVisitor< EventType > &visitor) const =0
virtual void Visit(const AndExp< EventType > *) override