WitnessWrapper.hpp

Go to the documentation of this file.
00001 #ifndef wali_witness_WITNESS_WRAPPER_GUARD
00002 #define wali_witness_WITNESS_WRAPPER_GUARD 1
00003 
00004 /**
00005  * @author Nicholas Kidd
00006  */
00007 
00008 #include "wali/Common.hpp"
00009 #include "wali/MergeFn.hpp"
00010 #include "wali/wpds/Wrapper.hpp"
00011 
00012 namespace wali
00013 {
00014   namespace witness
00015   {
00016     /**
00017      * @class WitnessWrapper
00018      */
00019     class WitnessWrapper : public ::wali::wpds::Wrapper
00020     {
00021       public:
00022 
00023         WitnessWrapper() {}
00024 
00025         virtual ~WitnessWrapper() {}
00026 
00027         virtual sem_elem_t wrap( wfa::ITrans const & t );
00028 
00029         virtual sem_elem_t wrap( wpds::Rule const & r );
00030 
00031         virtual merge_fn_t wrap( wpds::ewpds::ERule const & r, merge_fn_t user_merge );
00032 
00033         virtual sem_elem_t unwrap( sem_elem_t se );
00034 
00035         virtual merge_fn_t unwrap( merge_fn_t mf );
00036 
00037     }; // namespace WitnessWrapper
00038 
00039   } // namespace witness
00040 
00041 } // namespace wali
00042 
00043 #endif  // wali_witness_WITNESS_WRAPPER_GUARD
00044