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