Logo ROOT   6.07/09
Reference Guide
TSQLTableInfo.cxx
Go to the documentation of this file.
1 // @(#)root/net:$Id$
2 // Author: Sergey Linev 31/05/2006
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 ////////////////////////////////////////////////////////////////////////////////
13 //
14 // TSQLTableInfo
15 //
16 // Contains information about table and table columns.
17 // For MySQL additional information like engine type,
18 // creation and last update time is provided
19 //
20 ////////////////////////////////////////////////////////////////////////////////
21 
22 
23 
24 #include "TSQLTableInfo.h"
25 
26 #include "TSQLColumnInfo.h"
27 #include "TList.h"
28 #include "TROOT.h"
29 #include "Riostream.h"
30 
32 
33 ////////////////////////////////////////////////////////////////////////////////
34 /// default constructor
35 
37  TNamed(),
38  fColumns(0),
39  fEngine(),
40  fCreateTime(),
41  fUpdateTime()
42 {
43 }
44 
45 ////////////////////////////////////////////////////////////////////////////////
46 /// normal constructor
47 
48 TSQLTableInfo::TSQLTableInfo(const char* tablename,
49  TList* columns,
50  const char* comment,
51  const char* engine,
52  const char* create_time,
53  const char* update_time) :
54  TNamed(tablename, comment),
55  fColumns(columns),
56  fEngine(engine),
57  fCreateTime(create_time),
58  fUpdateTime(update_time)
59 {
60 }
61 
62 ////////////////////////////////////////////////////////////////////////////////
63 /// destructor
64 
66 {
67  if (fColumns!=0) {
68  fColumns->Delete();
69  delete fColumns;
70  fColumns = 0;
71  }
72 }
73 
74 ////////////////////////////////////////////////////////////////////////////////
75 /// Prints table and table columns info
76 
78 {
80  std::cout << "Table:" << GetName();
81 
82  if ((GetTitle()!=0) && (strlen(GetTitle())!=0))
83  std::cout << " comm:'" << GetTitle() << "'";
84 
85  if (fEngine.Length()>0)
86  std::cout << " engine:" << fEngine;
87 
88  if (fCreateTime.Length()>0)
89  std::cout << " create:" << fCreateTime;
90 
91  if (fUpdateTime.Length()>0)
92  std::cout << " update:" << fUpdateTime;
93 
94  std::cout << std::endl;
95 
97  if (fColumns!=0)
98  fColumns->Print("*");
100 }
101 
102 ////////////////////////////////////////////////////////////////////////////////
103 /// Return column info object of given name
104 
106 {
107  if ((columnname==0) || (fColumns==0)) return 0;
108 
109  return dynamic_cast<TSQLColumnInfo*> (fColumns->FindObject(columnname));
110 
111 }
virtual const char * GetTitle() const
Returns title of object.
Definition: TNamed.h:52
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
Definition: TROOT.cxx:2543
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
Definition: TList.cxx:405
TString fUpdateTime
table creation time
Definition: TSQLTableInfo.h:28
Ssiz_t Length() const
Definition: TString.h:390
const char Option_t
Definition: RtypesCore.h:62
static const std::string comment("comment")
TString fCreateTime
SQL tables engine name.
Definition: TSQLTableInfo.h:27
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
Definition: TList.cxx:497
TList * fColumns
Definition: TSQLTableInfo.h:25
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
A doubly linked list.
Definition: TList.h:47
virtual ~TSQLTableInfo()
destructor
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:51
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
Definition: TROOT.cxx:2614
TSQLColumnInfo * FindColumn(const char *columnname)
Return column info object of given name.
virtual void Print(Option_t *option="") const
Default print for collections, calls Print(option, 1).
#define ClassImp(name)
Definition: Rtypes.h:279
TSQLTableInfo()
table update time
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
Definition: TROOT.cxx:2606
TString fEngine
list of TSQLColumnInfo objects, describing each table column
Definition: TSQLTableInfo.h:26
virtual void Print(Option_t *option="") const
Prints table and table columns info.