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                                  */
72   	} TABLEDESCRIPTOR_ST;
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 */
91