Defined in file: hzDatabase.h
hdbDatatype unifies five quite different groups of data types that members of data classes can assume. There is a derivative for each group as follows:- 1) hdbCpptype C++ fundamental data types 2) hdbHzotype HadronZoo in-built data types 3) hdbRgxtype Application specific data types validated by a regular expression 4) hdbEnum Application specific data enumeration (validation list) 5) hdbClass Application specific data class The hdbDatatype ensures each data type has a name and a base data type. All data types known to an application are held in _hzGlobal_Datatypes, declared as a hzMapS<hzString,hdbDatatype*>. This maps data type name to data type and ensures the data type name is unique across all data types, not just those within the same group. The data type used to initialize a data class member or other data entity must always be supplied as a pointer to one of the derived classes. Use of the base class is meaningless. For this reason the hdbDatatype constructor is protected. Note that InitDatabase() pre-loads both the C++ fundamental and the HadronZoo in-built data types. Any application specific data types are added as they are encountered, usually in the application config files.
Constructors/Detructors
| hdbDatatype* | hdbDatatype | (void) | |
| void | ~hdbDatatype | (void) |
Public Methods:
| hdbBasetype | Basetype | (void) | |
| hzEcode | SetBasetype | (hdbBasetype bt) | |
| hzEcode | SetTypename | (hzString& type) | |
| hzString | strName | (void) | |
| hzString | strType | (void) | |
| const char* | txtName | (void) | |
| const char* | txtType | (void) |
Member Variables:
| hdbBasetype | m_Basetype | Real (internal) data type uint32_t m_Resv ; // Reserved | |
| hzString | m_Typename | Type name |