MergeFn.hpp

Go to the documentation of this file.
00001 #ifndef wali_MERGE_FN_GUARD
00002 #define wali_MERGE_FN_GUARD 1
00003 
00004 /**
00005  * @author Akash Lal
00006  * @author Nicholas Kidd
00007  */
00008 
00009 #include "wali/Common.hpp"
00010 #include "wali/ref_ptr.hpp"
00011 #include "wali/IMergeFn.hpp"
00012 #include <iostream>
00013 
00014 
00015 namespace wali
00016 {
00017   class MergeFn;
00018   //typedef ref_ptr< MergeFn > merge_fn_t;
00019 
00020   class MergeFn : public IMergeFn//public Printable, public Countable
00021   {
00022     public:
00023       //static const std::string XMLTag;
00024 
00025       MergeFn();
00026 
00027       explicit MergeFn(sem_elem_t sr);
00028 
00029       virtual ~MergeFn();
00030 
00031       virtual sem_elem_t apply_f(sem_elem_t w1, sem_elem_t w2);
00032 
00033       virtual bool equal(merge_fn_t mf);
00034 
00035       virtual MergeFn *parse_element(const char *s, sem_elem_t sem);
00036 
00037       virtual std::ostream &print(std::ostream &o) const;
00038 
00039     private:
00040       sem_elem_t sr_data;
00041 
00042   };
00043 
00044 } // namespacw wali
00045 
00046 #endif // wali_MERGE_FN_GUARD
00047