00001 // 00002 // Copyright (c) 2003 00003 // Paul Hamilton; pHamtec P/L 00004 // 00005 // Permission to use, copy, modify, distribute and sell this software 00006 // and its documentation for any purpose is hereby granted without fee, 00007 // provided that the above copyright notice appears in all copies and 00008 // that both the copyright notice and this permission notice appear in 00009 // supporting documentation. No representations are made about the 00010 // suitability of this software for any purpose. It is provided "as is" 00011 // without express or implied warranty. 00012 // 00013 // foo.hpp 00014 // 00015 // 4-Jul-2003 phamilton Created 00016 // 00017 00018 #ifndef incFOO 00019 #define incFOO 00020 00021 // forwards 00022 #include "base.hpp" 00023 #include "c_vector.hpp" 00024 00025 namespace reflect_test { 00026 00027 class foo : public base 00028 { 00029 private: 00030 int x; 00031 double y; 00032 bool z; 00033 c_vector bars; 00034 00035 public: 00036 foo(const std::string &type, const std::string &name) : 00037 base(type, name), 00038 x(0), 00039 y(0), 00040 z(false), 00041 bars(this, "bars") 00042 {}; 00043 00044 void addbars(); 00045 00046 // object_base overrides 00047 virtual bool accept(ph::common::member_visitor *v); 00048 virtual bool accept(ph::common::const_member_visitor *v) const; 00049 virtual bool accept(ph::common::object_visitor *v); 00050 virtual bool accept(ph::common::const_object_visitor *v) const; 00051 }; 00052 00053 }; 00054 00055 #endif // incFOO