00001 #ifndef wali_VISITABLE_GUARD 00002 #define wali_VISITABLE_GUARD 1 00003 00004 /*! 00005 * @author Nicholas Kidd 00006 */ 00007 00008 #include "wali/Common.hpp" 00009 00010 namespace wali 00011 { 00012 namespace witness 00013 { 00014 class Visitor; 00015 00016 class Visitable 00017 { 00018 public: 00019 virtual ~Visitable() {} 00020 00021 virtual void accept( Visitor& v, bool visitOnce=false ) = 0; 00022 }; 00023 00024 } // namespace witness 00025 00026 } // namespace wali 00027 00028 #endif // wali_VISITABLE_GUARD 00029