22 #ifndef __M2ETIS_PUBSUB_FILTER_FILTEREXPRESSIONS_ANDEXP_H__ 
   23 #define __M2ETIS_PUBSUB_FILTER_FILTEREXPRESSIONS_ANDEXP_H__ 
   33         template<
typename EventType>
 
   42                         operand1_->Accept(filter_visitor);
 
   43                         operand2_->Accept(filter_visitor);
 
   44                         filter_visitor.
Visit(
this);
 
   47                 virtual operator boost::shared_ptr<FilterExp<EventType>>() 
const {
 
   48                         return boost::make_shared<AndExp<EventType>>(*this);
 
   52                 virtual operator std::string()
 const override {
 
   53                         return (std::string(
"AndExp") + 
"(\n" + std::string(*operand1_) + 
", \t\t  " + std::string(*operand2_) + 
")");
 
   57                 boost::shared_ptr<FilterExp<EventType>> operand1_;
 
   58                 boost::shared_ptr<FilterExp<EventType>> operand2_;
 
   61                         const AndExp * other_AndExp = 
dynamic_cast<const AndExp *
>(&other_filter);
 
   64                                 return (*operand1_ == *(other_AndExp->operand1_) && *operand2_ == *(other_AndExp->operand2_));
 
   70                 virtual size_t doHash()
 const {
 
   71                         return std::hash<FilterExp<EventType>>()(*operand1_) ^ std::hash<FilterExp<EventType>>()(*operand2_);
 
   75                 template<
typename Archive>
 
   76                 void serialize(Archive & ar, 
const unsigned int) {
 
   77                         ar & boost::serialization::base_object<FilterExp<EventType>>(*this);
 
AndExp(const boost::shared_ptr< FilterExp< EventType >> op1, const boost::shared_ptr< FilterExp< EventType >> op2)
 
friend class boost::serialization::access
 
virtual void Accept(FilterVisitor< EventType > &filter_visitor) const override
 
virtual void Visit(const FilterExp< EventType > *)=0