Logo ROOT  
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
48TSQLTableInfo::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) {
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}
const char Option_t
Definition: RtypesCore.h:66
#define ClassImp(name)
Definition: Rtypes.h:375
void Print(Option_t *option="") const override
Default print for collections, calls Print(option, 1).
A doubly linked list.
Definition: TList.h:38
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
Definition: TList.cxx:578
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
Definition: TList.cxx:470
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
const char * GetName() const override
Returns name of object.
Definition: TNamed.h:47
const char * GetTitle() const override
Returns title of object.
Definition: TNamed.h:48
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
Definition: TROOT.cxx:2799
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
Definition: TROOT.cxx:2807
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
Definition: TROOT.cxx:2692
TSQLColumnInfo * FindColumn(const char *columnname)
Return column info object of given name.
TList * fColumns
Definition: TSQLTableInfo.h:23
TSQLTableInfo()
table update time
void Print(Option_t *option="") const override
Prints table and table columns info.
TString fCreateTime
SQL tables engine name.
Definition: TSQLTableInfo.h:25
TString fEngine
list of TSQLColumnInfo objects, describing each table column
Definition: TSQLTableInfo.h:24
virtual ~TSQLTableInfo()
destructor
TString fUpdateTime
table creation time
Definition: TSQLTableInfo.h:26
Ssiz_t Length() const
Definition: TString.h:410
static const std::string comment("comment")