Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals
common

outerable_object.hpp

Go to the documentation of this file.
00001 //
00002 // See license.txt for license information.
00003 //
00004 // outerable_object.hpp
00005 //
00006 // 17-Jul-2003 phamilton Created
00007 //
00008 
00009 #ifndef incCOMMON_OUTERABLE_OBJECT
00010 #define incCOMMON_OUTERABLE_OBJECT
00011 
00012 namespace ph {
00013 namespace common {
00014 
00015 // forwards
00016 class object_base;
00017 
00018 class outerable_object_base
00019 /**
00020  Abstract class representing a an object which has an outer.
00021 */
00022 {
00023 public:
00024 virtual ~outerable_object_base() {}
00025 
00026 virtual object_base *outer() const = 0;
00027  //!< return the "outer" object from this one.
00028  //!
00029 virtual void outer(object_base *outer) = 0;
00030  //!< Set the outer object of this object.
00031  //!
00032 };
00033 
00034 class outerable_helper
00035 /**
00036  A helper class whcih declares a member of the class type to provide the
00037  outer of an object.
00038 */
00039 {
00040 public:
00041 outerable_helper(object_base *outer=0) :
00042 _outer(outer)
00043 {};
00044 
00045 object_base *outer_helper() const 
00046 { return _outer; }
00047 void outer_helper(object_base *outer) 
00048 { _outer = outer; }
00049 
00050 private:
00051 object_base *_outer;
00052 };
00053 
00054 }; // common
00055 }; // ph
00056 
00057 #endif // incCOMMON_OUTERABLE_OBJECT

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

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