00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #if DtHLA 00011 #ifndef baseHlaClass_H_ 00012 #define baseHlaClass_H_ 00013 00014 #include "baseHlaValue.h" 00015 #include <vector> 00016 00017 namespace MAKLogger 00018 { 00019 00022 template <typename ValueType> 00023 class DtBaseHlaClass : virtual public DtBaseHlaValue 00024 { 00025 public: 00026 typedef std::vector<ValueType> ValueVector; 00027 typedef typename ValueVector::iterator iterator; 00028 typedef typename ValueVector::const_iterator const_iterator; 00029 00030 public: 00031 00033 DtBaseHlaClass(const DtString& name,DtBaseHlaClass<ValueType>* baseClass, 00034 DtLgrHlaHandle handle); 00035 00037 DtBaseHlaClass(const DtString& name,const DtString& baseClassName, 00038 DtLgrHlaHandle handle); 00039 00043 DtBaseHlaClass(const DtBaseHlaClass<ValueType>& src); 00044 00048 DtBaseHlaClass<ValueType>& operator=(const DtBaseHlaClass<ValueType>& src); 00049 00051 virtual ~DtBaseHlaClass(); 00052 00054 inline const DtString& baseName() const; 00055 00057 DtString simpleName() const; 00058 00060 inline const char* baseName2print() const; 00061 00065 void setBaseNameOnly(const DtString& name0); 00066 00068 00069 00070 DtBaseHlaClass<ValueType>* baseClass(); 00071 const DtBaseHlaClass<ValueType>* baseClass() const; 00073 00077 void setBaseClass(DtBaseHlaClass<ValueType>* baseClass); 00078 00081 bool isOfClass( DtLgrHlaHandle handle ) const; 00082 00085 bool isOfClass( const DtString& name ) const; 00086 00088 bool isOfClass( const DtBaseHlaClass& baseClass) const; 00089 00092 void addValue(const ValueType& value); 00093 00095 void clearValues(); 00096 00100 int valueCount(bool thisClassOnly) const; 00101 00106 int minHandle(bool thisClassOnly) const; 00107 00112 int maxHandle(bool thisClassOnly) const; 00113 00114 00116 00117 iterator begin(); 00118 const_iterator begin() const; 00120 00122 00123 iterator end(); 00124 const_iterator end() const; 00126 00127 00129 00130 00131 00132 00133 ValueType* findValueByName(const DtString& name,bool thisClassOnly); 00134 const ValueType* findValueByName(const DtString& name,bool thisClassOnly) const; 00136 00138 00139 00140 00141 00142 ValueType* findValueByHandle(DtLgrHlaHandle handle,bool thisClassOnly); 00143 const ValueType* findValueByHandle(DtLgrHlaHandle handle,bool thisClassOnly) const; 00145 00146 private: 00147 DtString myBaseName; 00148 DtBaseHlaClass<ValueType>* myBaseClass; 00149 ValueVector myValues; 00150 }; 00151 00152 } 00153 00154 #define baseHlaClass_INC_ 00155 #include "baseHlaClass.inl" 00156 #undef baseHlaClass_INC_ 00157 00158 #endif 00159 #endif