Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals
persist » test

persist/test/base.hpp

Go to the documentation of this file.
00001 // See ../../license.txt for license information.
00002 //
00003 // base.hpp
00004 //
00005 // 4-Jul-2003 phamilton Created
00006 //
00007 
00008 #ifndef incBASE
00009 #define incBASE
00010 
00011 // forwards
00012 #include "../../common/object.hpp"
00013 #include "../../common/persistable_object.hpp"
00014 #include "../../common/outerable_object.hpp"
00015 #include "../../common/composition_object.hpp"
00016 
00017 namespace persist_test {
00018 
00019 class base :
00020 public ph::common::object_base,
00021 public ph::common::persistable_object_base,
00022 public ph::common::outerable_object_base,
00023 ph::common::outerable_helper,
00024 public ph::common::composition_object_base
00025 {
00026 public:
00027 base(const std::string &type, const std::string &name) :
00028 _type(type), _name(name)
00029 {};
00030 virtual ~base() {};
00031 
00032 // ph::common::object_base overrides
00033 virtual ph::common::outerable_object_base *outerable() 
00034 { return this; }
00035 virtual const ph::common::outerable_object_base *outerable() const 
00036 { return this; }
00037 virtual const ph::common::composition_object_base *composition() const 
00038 { return this; }
00039 virtual ph::common::composition_object_base *composition() 
00040 { return this; }
00041 virtual const persistable_object_base *persistable() const 
00042 { return this; }
00043 virtual persistable_object_base *persistable() 
00044 { return this; }
00045 
00046 // persistable_object_base overrides
00047 virtual ph::common::object_base *create(
00048 const std::string &type, 
00049 const std::string &name, 
00050 ph::common::persistable_object_context *context) 
00051 { 
00052 if (outer() && outer()->persistable())
00053 return outer()->persistable()->create(type, name, context);
00054 return 0; 
00055 }
00056 
00057 // ph::common::outerable_object_base<object> overides
00058 virtual ph::common::object_base *outer() const { return outer_helper(); }
00059 virtual void outer(ph::common::object_base *outer) { outer_helper(outer); }
00060 
00061 protected:
00062 std::string _type;
00063 std::string _name;
00064 };
00065 
00066 };
00067 
00068 #endif // incBASE

Generated on Wed Apr 5 22:03:22 2006 for cppxmlobj by doxygen 1.4.3

AltStyle によって変換されたページ (->オリジナル) /