00001 // See ../license.txt for license information. 00002 // 00003 // ref_object.hpp 00004 // 00005 // 4-Jul-2003 phamilton Created 00006 // 00007 00008 #ifndef incREFLECT_REF_OBJECT 00009 #define incREFLECT_REF_OBJECT 00010 00011 // forwards 00012 #include "object_visitor.hpp" 00013 00014 namespace ph { 00015 namespace reflect { 00016 00017 class REFLECT_DECL ref_object_helper 00018 /** 00019 A helper class for reference objects. This implements the visitor 00020 pattern. 00021 */ 00022 { 00023 public: 00024 00025 bool helper_accept(const ph::common::object_base *obj, 00026 const ph::common::object_base *member, bool owned, 00027 ph::common::object_name_visitor *visitor) const; 00028 00029 bool helper_accept(ph::common::object_base *obj, 00030 ph::common::object_base *member, bool owned, 00031 ph::common::object_visitor *visitor); 00032 00033 bool helper_accept(const ph::common::object_base *obj, 00034 const ph::common::object_base *member, bool owned, 00035 ph::common::const_object_visitor *visitor) const; 00036 }; 00037 00038 }; // reflect 00039 }; // ph 00040 00041 #endif // incREFLECT_REF_OBJECT