TTableDescriptor


class description - source file - inheritance tree

class TTableDescriptor : public TTable


    protected:
virtual TTableDescriptor* GetDescriptorPointer() const virtual void Init(TClass* classPtr) virtual void SetDescriptorPointer(TTableDescriptor* list) public:
TTableDescriptor TTableDescriptor(const TTable* parentTable) TTableDescriptor TTableDescriptor(TClass* classPtr) TTableDescriptor TTableDescriptor(const TTableDescriptor& dsc) TTableDescriptor TTableDescriptor() TTableDescriptor TTableDescriptor(const Text_t* name) TTableDescriptor TTableDescriptor(Int_t n) TTableDescriptor TTableDescriptor(const Text_t* name, Int_t n) virtual void ~TTableDescriptor() tableDescriptor_st* begin() const static TClass* Class() const Int_t ColumnByName(const Char_t* columnName = 0) const const Char_t* ColumnName(Int_t columnIndex) const UInt_t ColumnSize(Int_t columnIndex) const Int_t ColumnSize(const Char_t* columnName = 0) const TTable::EColumnType ColumnType(Int_t columnIndex) const TTable::EColumnType ColumnType(const Char_t* columnName = 0) const TString CreateLeafList() const UInt_t Dimensions(Int_t columnIndex) const Int_t Dimensions(const Char_t* columnName = 0) const tableDescriptor_st* end() const tableDescriptor_st* GetTable(Int_t i = 0) const const UInt_t* IndexArray(Int_t columnIndex) const virtual TClass* IsA() const void LearnTable(const TTable* parentTable) void LearnTable(TClass* classPtr) static TTableDescriptor* MakeDescriptor(const char* structName) UInt_t NumberOfColumns() const UInt_t Offset(Int_t columnIndex) const Int_t Offset(const Char_t* columnName = 0) const tableDescriptor_st& operator[](Int_t i) const tableDescriptor_st& operator[](Int_t i) const TClass* RowClass() const void SetColumnType(TTable::EColumnType type, Int_t column) void SetDimensions(UInt_t dim, Int_t column) void SetOffset(UInt_t offset, Int_t column) void SetSize(UInt_t size, Int_t column) void SetTypeSize(UInt_t size, Int_t column) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual Int_t Sizeof() const virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) UInt_t TypeSize(Int_t columnIndex) const Int_t TypeSize(const Char_t* columnName = 0) const virtual Int_t UpdateOffsets(const TTableDescriptor* newDesciptor)

Data Members

    private:
protected:
TClass* fRowClass TClass defining TTableDescriptor* fSecondDescriptor shadow descriptor static TTableDescriptor* fgColDescriptors

Class Description


void Streamer(TBuffer &R__b)
 The custom Streamer for this table

TTableDescriptor(const TTable *parentTable) : TTable("tableDescriptor",sizeof(tableDescriptor_st)), fRowClass(0),fSecondDescriptor(0)

TTableDescriptor(TClass *classPtr) : TTable("tableDescriptor",sizeof(tableDescriptor_st)),fRowClass(0),fSecondDescriptor(0)
 Create a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C_struture only !!!

void Init(TClass *classPtr)
 Create a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C_structure only !!!

~TTableDescriptor()

TString CreateLeafList() const
 Create a list of leaf to be useful for TBranch::TBranch ctor

TTableDescriptor* MakeDescriptor(const char *structName)

 MakeDescriptor(const char *structName) - static method
                structName - the name of the C structure
                             to create descriptor of
 return a new instance of the TTableDescriptor or 0
 if the "structName is not present with the dictionary



void LearnTable(const TTable *parentTable)

void LearnTable(TClass *classPtr)
  LearnTable() creates an array of the descriptors for elements of the row

 It creates a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C-structure only !!!

  This is to introduce an artificial restriction demanded by STAR database group

    1. the name may be 31 symbols at most
    2. the number the dimension is 3 at most

  To lift this restriction one has to provide -DNORESTRICTIONS CPP symbol and
  recompile code (and debug code NOW!)


Int_t UpdateOffsets(const TTableDescriptor *newDescriptor)
                  "Schema evolution"
 Method updates the offsets with a new ones from another descriptor


const Int_t ColumnByName(const Char_t *columnName) const
 Find the column index but the column name

Int_t Offset(const Char_t *columnName) const
 Return offset of the column defined by "columnName"
 Take in account index if provided
 Can not handle multidimensional indeces yet.

Int_t ColumnSize(const Char_t *columnName) const

Int_t TypeSize(const Char_t *columnName) const

Int_t Dimensions(const Char_t *columnName) const



Inline Functions


                 TTableDescriptor TTableDescriptor(const TTableDescriptor& dsc)
                    const Char_t* ColumnName(Int_t columnIndex) const
                           UInt_t NumberOfColumns() const
                    const UInt_t* IndexArray(Int_t columnIndex) const
                            Int_t Offset(const Char_t* columnName = 0) const
                            Int_t ColumnSize(const Char_t* columnName = 0) const
                            Int_t TypeSize(const Char_t* columnName = 0) const
                            Int_t Dimensions(const Char_t* columnName = 0) const
              TTable::EColumnType ColumnType(Int_t columnIndex) const
              TTable::EColumnType ColumnType(const Char_t* columnName = 0) const
                          TClass* RowClass() const
                             void SetOffset(UInt_t offset, Int_t column)
                             void SetSize(UInt_t size, Int_t column)
                             void SetTypeSize(UInt_t size, Int_t column)
                             void SetDimensions(UInt_t dim, Int_t column)
                            Int_t Sizeof() const
                             void SetColumnType(TTable::EColumnType type, Int_t column)
                TTableDescriptor* GetDescriptorPointer() const
                             void SetDescriptorPointer(TTableDescriptor* list)
                 TTableDescriptor TTableDescriptor()
                 TTableDescriptor TTableDescriptor(const Text_t* name)
                 TTableDescriptor TTableDescriptor(Int_t n)
                 TTableDescriptor TTableDescriptor(const Text_t* name, Int_t n)
              tableDescriptor_st* GetTable(Int_t i = 0) const
              tableDescriptor_st& operator[](Int_t i)
        const tableDescriptor_st& operator[](Int_t i) const
              tableDescriptor_st* begin() const
              tableDescriptor_st* end() const
                          TClass* Class()
                          TClass* IsA() const
                             void ShowMembers(TMemberInspector& insp, char* parent)
                             void StreamerNVirtual(TBuffer& b)


Author: Valery Fine 09/08/99 (E-mail: fine@bnl.gov)
Last update: root/star:$Name: $:$Id: TTableDescriptor.cxx,v 1.9 2001/07/11 06:46:19 brun Exp $


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.