| Polaris: TypedCollection.h Source File | ||
|
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
TypedCollection.hGo to the documentation of this file.00001 #ifndef _TYPED_COLLECT_H 00002 #define _TYPED_COLLECT_H 00003 /// 00004 /// \class TypedCollection 00005 /// \brief A template class used to derive Lists, Sets, ... 00006 /// \defgroup Polaris 00007 /// \ingroup Polaris 00008 /// C++ VDL 00009 /// \see TypedCollection.h 00010 /// \see TypedCollection.h 00011 /// 00012 /// \endcode 00013 /// \section Overview Overview 00014 /// The TypedCollection class is used as the base class for templatized 00015 /// collections such as List and RefList where the class of the template, 00016 /// T, must be derived from Listable. TypedCollection simply 00017 /// specifies an interface which is used by the Iterator class in order 00018 /// to make these collections universally accessable by the Iterator. 00019 /// Other than to provide the interface for Iterator, TypedCollection 00020 /// has no bearing on the collections which inherit from it. 00021 /// 00022 /// \endcode 00023 /// \section Hierarchy Hierarchy Structure 00024 /// TypedCollection is the base for specific, usable classes 00025 /// which inherit from it. The hierarchy can be 00026 /// represented by: 00027 /// 00028 /// \code 00029 /// --- : inherited from relationship 00030 /// -c- : contained in relationship 00031 /// 00032 /// 00033 /// Collection 00034 /// / \ // 00035 /// / \ // 00036 /// BaseList Listable BaseRefList 00037 /// | \ | / | 00038 /// | \ | / | 00039 /// | c TypedCollection c | 00040 /// | \ / \ / | 00041 /// | \ / \ / | 00042 /// | LIST RefList | 00043 /// | Set RefSet | 00044 /// c c 00045 /// | Listable | 00046 /// | | | 00047 /// | | | 00048 /// | BaseMapRoot | 00049 /// | / \ | 00050 /// | / \ | 00051 /// BaseMap BaseRefMap 00052 /// | | 00053 /// | | 00054 /// TypedBaseMap TypedBaseRefMap 00055 /// / \ / \ // 00056 /// / \ / \ // 00057 /// ProtoDatabase ProtoMap ProtoRefMap ProtoRefDatabase 00058 /// / \ | | | | | \ // 00059 /// / \ | | | | | \ // 00060 /// Database KeyDatabase Map KeyMap RefMap KeyMap RefDatabase RefKeyDatabase 00061 /// \endcode 00062 /// 00063 /// 00064 /// \endcode 00065 /// \section See See Also 00066 /// Collection, Listable, Iterator, List, RefList, Set, RefSet 00067 /// 00068 #include "Collection.h" 00069 #include "../Listable.h" 00070 /// 00071 template <class T> class Iterator; 00072 template <class T> class Mutator; 00073 00074 template <class T> class TypedCollection : public Listable { 00075 friend class Iterator<T>; 00076 friend class Mutator<T>; 00077 00078 protected: 00079 virtual const Collection &_base_collection() const = 0; 00080 virtual Collection &_base_collection() = 0; 00081 public: 00082 virtual INLINE ~TypedCollection(); 00083 }; 00084 00085 template <class T> 00086 INLINE 00087 TypedCollection<T>::~TypedCollection() 00088 { 00089 ///< Nothing to do 00090 } 00091 00092 #endif 00093 |
||
|