/* @(#)root/table:$Id$ */

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
/* tableDescriptor.h */
#ifndef TABLEDESCRIPTOR_H
#define TABLEDESCRIPTOR_H

#ifdef NORESTRICTIONS
# define TABLEDESCRIPTOR_SPEC   \
 "struct tableDescriptor {      \
    char         *fColumnName; \
    unsigned int *fIndexArray; \
    unsigned int fOffset;      \
    unsigned int fSize;        \
    unsigned int fTypeSize;    \
    unsigned int fDimensions;  \
    EColumnType  fType;        \
};"
#else
# define TABLEDESCRIPTOR_SPEC      \
 "struct tableDescriptor {         \
    char         fColumnName[20]; \
    unsigned int fIndexArray[2];  \
    unsigned int fOffset;         \
    unsigned int fSize;           \
    unsigned int fTypeSize;       \
    unsigned int fDimensions;     \
    EColumnType  fType;           \
};"
#endif

/*   this is a name clas with ROOT
 * enum EColumnType {kNAN, kFloat, kInt, kLong, kShort, kDouble, kUInt
 *                     ,kULong, kUShort, kUChar, kChar };
 */

/*  This is to introduce an artificial restriction demanded by STAR database group
 *
 *    1. the name may be 31 symbols at most
 *    2. the number of the dimensions is 3 at most
 *
 *  To lift this restriction one has to provide -DNORESTRICTIONS CPP symbol and
 *  recompile code.
 */
//______________________________________________________________________________
//
// Table descriptor tableDescriptor_st is internal descriptor of TTableDescriptor class
//
// One should not use it directly.
// To access the TTable descriptor information use TTableDescriptor object instead
//______________________________________________________________________________

typedef struct tableDescriptor_st {
#ifdef NORESTRICTIONS
    char         *fColumnName; /* The name of this data-member                                         */
    unsigned int *fIndexArray; /* The array of the sizes for each dimensions fIndexArray[fDimensions]  */
#else
    char         fColumnName[32];  /* The name of this data-member: see dstype.h for dsl compatible mode */
    unsigned int fIndexArray[3];   /* The array of the sizes for each dimensions fIndexArray[fDimensions]*/
#endif
    unsigned int fOffset;      /* The first byte in the row of this column                              */
    unsigned int fSize;        /* The full size of the selected column in bytes                         */
    unsigned int fTypeSize;    /* The type size of the selected column in bytes                         */
    unsigned int fDimensions;  /* The number of the dimensions for array                                */
    int          fType;        /* The data type of the selected column                                  */
} TABLEDESCRIPTOR_ST;
// $Log: tableDescriptor.h,v $
// Revision 1.2  2003/01/27 20:41:36  brun
// New version of the Table package by Valeri Fine.
// New classes TIndexTable TResponseIterator TResponseTable TTableMap
//
// Revision 1.1.1.1  2002/05/28 12:32:02  fisyak
//
//
// Revision 1.1  2002/05/27 16:26:59  rdm
// rename star to table.
//
// Revision 1.1.1.1  2000/05/16 17:00:49  rdm
// Initial import of ROOT into CVS
//
// Revision 1.6  2000/01/12 18:07:25  fine
//  cvs symbols have been added and copyright class introduced
//"
#endif /* TABLEDESCRIPTOR_H */
 tableDescriptor.h:1
 tableDescriptor.h:2
 tableDescriptor.h:3
 tableDescriptor.h:4
 tableDescriptor.h:5
 tableDescriptor.h:6
 tableDescriptor.h:7
 tableDescriptor.h:8
 tableDescriptor.h:9
 tableDescriptor.h:10
 tableDescriptor.h:11
 tableDescriptor.h:12
 tableDescriptor.h:13
 tableDescriptor.h:14
 tableDescriptor.h:15
 tableDescriptor.h:16
 tableDescriptor.h:17
 tableDescriptor.h:18
 tableDescriptor.h:19
 tableDescriptor.h:20
 tableDescriptor.h:21
 tableDescriptor.h:22
 tableDescriptor.h:23
 tableDescriptor.h:24
 tableDescriptor.h:25
 tableDescriptor.h:26
 tableDescriptor.h:27
 tableDescriptor.h:28
 tableDescriptor.h:29
 tableDescriptor.h:30
 tableDescriptor.h:31
 tableDescriptor.h:32
 tableDescriptor.h:33
 tableDescriptor.h:34
 tableDescriptor.h:35
 tableDescriptor.h:36
 tableDescriptor.h:37
 tableDescriptor.h:38
 tableDescriptor.h:39
 tableDescriptor.h:40
 tableDescriptor.h:41
 tableDescriptor.h:42
 tableDescriptor.h:43
 tableDescriptor.h:44
 tableDescriptor.h:45
 tableDescriptor.h:46
 tableDescriptor.h:47
 tableDescriptor.h:48
 tableDescriptor.h:49
 tableDescriptor.h:50
 tableDescriptor.h:51
 tableDescriptor.h:52
 tableDescriptor.h:53
 tableDescriptor.h:54
 tableDescriptor.h:55
 tableDescriptor.h:56
 tableDescriptor.h:57
 tableDescriptor.h:58
 tableDescriptor.h:59
 tableDescriptor.h:60
 tableDescriptor.h:61
 tableDescriptor.h:62
 tableDescriptor.h:63
 tableDescriptor.h:64
 tableDescriptor.h:65
 tableDescriptor.h:66
 tableDescriptor.h:67
 tableDescriptor.h:68
 tableDescriptor.h:69
 tableDescriptor.h:70
 tableDescriptor.h:71
 tableDescriptor.h:72
 tableDescriptor.h:73
 tableDescriptor.h:74
 tableDescriptor.h:75
 tableDescriptor.h:76
 tableDescriptor.h:77
 tableDescriptor.h:78
 tableDescriptor.h:79
 tableDescriptor.h:80
 tableDescriptor.h:81
 tableDescriptor.h:82
 tableDescriptor.h:83
 tableDescriptor.h:84
 tableDescriptor.h:85
 tableDescriptor.h:86
 tableDescriptor.h:87
 tableDescriptor.h:88
 tableDescriptor.h:89
 tableDescriptor.h:90