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