StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
tableDescriptor.h
1 /* @(#)root/table:$Id$ */
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 /* tableDescriptor.h */
11 #ifndef TABLEDESCRIPTOR_H
12 #define TABLEDESCRIPTOR_H
13 
14 #ifdef NORESTRICTIONS
15 # define TABLEDESCRIPTOR_SPEC \
16  "struct tableDescriptor { \
17  char *fColumnName; \
18  unsigned int *fIndexArray; \
19  unsigned int fOffset; \
20  unsigned int fSize; \
21  unsigned int fTypeSize; \
22  unsigned int fDimensions; \
23  EColumnType fType; \
24 };"
25 #else
26 # define TABLEDESCRIPTOR_SPEC \
27  "struct tableDescriptor { \
28  char fColumnName[20]; \
29  unsigned int fIndexArray[2]; \
30  unsigned int fOffset; \
31  unsigned int fSize; \
32  unsigned int fTypeSize; \
33  unsigned int fDimensions; \
34  EColumnType fType; \
35 };"
36 #endif
37 
38 /* this is a name clas with ROOT
39  * enum EColumnType {kNAN, kFloat, kInt, kLong, kShort, kDouble, kUInt
40  * ,kULong, kUShort, kUChar, kChar };
41  */
42 
43 /* This is to introduce an artificial restriction demanded by STAR database group
44  *
45  * 1. the name may be 31 symbols at most
46  * 2. the number of the dimensions is 3 at most
47  *
48  * To lift this restriction one has to provide -DNORESTRICTIONS CPP symbol and
49  * recompile code.
50  */
51 //______________________________________________________________________________
52 //
53 // Table descriptor tableDescriptor_st is internal descriptor of TTableDescriptor class
54 //
55 // One should not use it directly.
56 // To access the TTable descriptor information use TTableDescriptor object instead
57 //______________________________________________________________________________
58 
59 typedef struct tableDescriptor_st {
60 #ifdef NORESTRICTIONS
61  char *fColumnName; /* The name of this data-member */
62  unsigned int *fIndexArray; /* The array of the sizes for each dimensions fIndexArray[fDimensions] */
63 #else
64  char fColumnName[32]; /* The name of this data-member: see dstype.h for dsl compatible mode */
65  unsigned int fIndexArray[3]; /* The array of the sizes for each dimensions fIndexArray[fDimensions]*/
66 #endif
67  unsigned int fOffset; /* The first byte in the row of this column */
68  unsigned int fSize; /* The full size of the selected column in bytes */
69  unsigned int fTypeSize; /* The type size of the selected column in bytes */
70  unsigned int fDimensions; /* The number of the dimensions for array */
71  int fType; /* The data type of the selected column */
73 // $Log: tableDescriptor.h,v $
74 // Revision 1.2 2003/01/27 20:41:36 brun
75 // New version of the Table package by Valeri Fine.
76 // New classes TIndexTable TResponseIterator TResponseTable TTableMap
77 //
78 // Revision 1.1.1.1 2002/05/28 12:32:02 fisyak
79 //
80 //
81 // Revision 1.1 2002/05/27 16:26:59 rdm
82 // rename star to table.
83 //
84 // Revision 1.1.1.1 2000/05/16 17:00:49 rdm
85 // Initial import of ROOT into CVS
86 //
87 // Revision 1.6 2000/01/12 18:07:25 fine
88 // cvs symbols have been added and copyright class introduced
89 //"
90 #endif /* TABLEDESCRIPTOR_H */