00001 /* @(#)root/table:$Id: tableDescriptor.h 31945 2009-12-21 19:03:21Z rdm $ */ 00002 00003 /************************************************************************* 00004 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * 00005 * All rights reserved. * 00006 * * 00007 * For the licensing terms see $ROOTSYS/LICENSE. * 00008 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00009 *************************************************************************/ 00010 /* tableDescriptor.h */ 00011 #ifndef TABLEDESCRIPTOR_H 00012 #define TABLEDESCRIPTOR_H 00013 00014 #ifdef NORESTRICTIONS 00015 # define TABLEDESCRIPTOR_SPEC \ 00016 "struct tableDescriptor { \ 00017 char *fColumnName; \ 00018 unsigned int *fIndexArray; \ 00019 unsigned int fOffset; \ 00020 unsigned int fSize; \ 00021 unsigned int fTypeSize; \ 00022 unsigned int fDimensions; \ 00023 EColumnType fType; \ 00024 };" 00025 #else 00026 # define TABLEDESCRIPTOR_SPEC \ 00027 "struct tableDescriptor { \ 00028 char fColumnName[20]; \ 00029 unsigned int fIndexArray[2]; \ 00030 unsigned int fOffset; \ 00031 unsigned int fSize; \ 00032 unsigned int fTypeSize; \ 00033 unsigned int fDimensions; \ 00034 EColumnType fType; \ 00035 };" 00036 #endif 00037 00038 /* this is a name clas with ROOT 00039 * enum EColumnType {kNAN, kFloat, kInt, kLong, kShort, kDouble, kUInt 00040 * ,kULong, kUShort, kUChar, kChar }; 00041 */ 00042 00043 /* This is to introduce an artificial restriction demanded by STAR database group 00044 * 00045 * 1. the name may be 31 symbols at most 00046 * 2. the number of the dimensions is 3 at most 00047 * 00048 * To lift this restriction one has to provide -DNORESTRICTIONS CPP symbol and 00049 * recompile code. 00050 */ 00051 //______________________________________________________________________________ 00052 // 00053 // Table descriptor tableDescriptor_st is internal descriptor of TTableDescriptor class 00054 // 00055 // One should not use it directly. 00056 // To access the TTable descriptor information use TTableDescriptor object instead 00057 //______________________________________________________________________________ 00058 00059 typedef struct tableDescriptor_st { 00060 #ifdef NORESTRICTIONS 00061 char *fColumnName; /* The name of this data-member */ 00062 unsigned int *fIndexArray; /* The array of the sizes for each dimensions fIndexArray[fDimensions] */ 00063 #else 00064 char fColumnName[32]; /* The name of this data-member: see dstype.h for dsl compatible mode */ 00065 unsigned int fIndexArray[3]; /* The array of the sizes for each dimensions fIndexArray[fDimensions]*/ 00066 #endif 00067 unsigned int fOffset; /* The first byte in the row of this column */ 00068 unsigned int fSize; /* The full size of the selected column in bytes */ 00069 unsigned int fTypeSize; /* The type size of the selected column in bytes */ 00070 unsigned int fDimensions; /* The number of the dimensions for array */ 00071 int fType; /* The data type of the selected column */ 00072 } TABLEDESCRIPTOR_ST; 00073 // $Log: tableDescriptor.h,v $ 00074 // Revision 1.2 2003/01/27 20:41:36 brun 00075 // New version of the Table package by Valeri Fine. 00076 // New classes TIndexTable TResponseIterator TResponseTable TTableMap 00077 // 00078 // Revision 1.1.1.1 2002/05/28 12:32:02 fisyak 00079 // 00080 // 00081 // Revision 1.1 2002/05/27 16:26:59 rdm 00082 // rename star to table. 00083 // 00084 // Revision 1.1.1.1 2000/05/16 17:00:49 rdm 00085 // Initial import of ROOT into CVS 00086 // 00087 // Revision 1.6 2000/01/12 18:07:25 fine 00088 // cvs symbols have been added and copyright class introduced 00089 //" 00090 #endif /* TABLEDESCRIPTOR_H */