22 #ifndef __M2ETIS_PUBSUB_FILTER_FILTEREXP_H__
23 #define __M2ETIS_PUBSUB_FILTER_FILTEREXP_H__
31 template<
typename EventType>
39 filter_visitor.
Visit(
this);
44 return this->doCompare(other_filter) && other_filter.doCompare(*
this);
48 return !(*
this == other_filter);
58 virtual operator std::string()
const {
59 return typeid(*this).name();
67 virtual bool doCompare(
const FilterExp &)
const {
return false; }
69 virtual size_t doHash()
const {
return 0; }
72 template<
typename Archive>
73 void serialize(Archive &,
const unsigned int) {
83 template<
typename EventType>
84 struct hash<
m2etis::pubsub::filter::FilterExp<EventType>> :
public unary_function<m2etis::pubsub::filter::FilterExp<EventType>, size_t> {
bool operator==(const FilterExp &other_filter) const
friend class boost::serialization::access
bool operator!=(const FilterExp &other_filter) const
boost::shared_ptr< FilterExp< EventType > > FilterExpPtr
virtual void Accept(FilterVisitor< EventType > &filter_visitor) const
virtual void Visit(const FilterExp< EventType > *)=0
size_t operator()(const m2etis::pubsub::filter::FilterExp< EventType > &filter) const