00001 // See ../../license.txt for license information. 00002 // 00003 // foo.hpp 00004 // 00005 // 4-Jul-2003 phamilton Created 00006 // 00007 00008 #ifndef incFOO 00009 #define incFOO 00010 00011 // forwards 00012 #include "base.hpp" 00013 #include "c_vector.hpp" 00014 00015 namespace persist_test { 00016 00017 class foo : public base 00018 { 00019 private: 00020 int x; 00021 double y; 00022 bool z; 00023 c_vector bars; 00024 c_vector templates; 00025 00026 public: 00027 foo(const std::string &type, const std::string &name) : 00028 base(type, name), 00029 x(0), 00030 y(0), 00031 z(false), 00032 bars(this, "bars"), 00033 templates(this, "templates") 00034 {}; 00035 00036 // persistable_object_base overrides 00037 virtual ph::common::object_base *get_composite_object(const std::string &name); 00038 virtual bool has(const std::string &name) const; 00039 virtual void set(const std::string &name, const std::string &value); 00040 virtual std::string get(const std::string &name) const; 00041 virtual bool write(ph::common::object_writer *writer) const; 00042 }; 00043 00044 }; 00045 00046 #endif // incFOO