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