ROOT  6.06/09
Reference Guide
TBufferSQL.h
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: Philippe Canal 2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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 #ifndef ROOT_TBufferSQL
13 #define ROOT_TBufferSQL
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TBufferSQL //
18 // //
19 // Implement TBuffer for a SQL backend //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 #ifndef ROOT_TBufferFile
24 #include "TBufferFile.h"
25 #endif
26 #ifndef ROOT_TString
27 #include "TString.h"
28 #endif
29 
30 
31 class TSQLResult;
32 class TSQLRow;
33 
34 class TBufferSQL : public TBufferFile {
35 
36 private:
37  std::vector<Int_t>::const_iterator fIter;
38 
39  std::vector<Int_t> *fColumnVec; //!
42 
43  // TBuffer objects cannot be copied or assigned
44  TBufferSQL(const TBufferSQL &); // not implemented
45  void operator=(const TBufferSQL &); // not implemented
46 
47 public:
48  TBufferSQL();
49  TBufferSQL(TBuffer::EMode mode, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr);
50  TBufferSQL(TBuffer::EMode mode, Int_t bufsiz, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr);
51  TBufferSQL(TBuffer::EMode mode, Int_t bufsiz, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr,void *buf, Bool_t adopt = kTRUE);
52  ~TBufferSQL();
53 
54  void ResetOffset();
55 
56  virtual void ReadBool(Bool_t &b);
57  virtual void ReadChar(Char_t &c);
58  virtual void ReadUChar(UChar_t &c);
59  virtual void ReadShort(Short_t &s);
60  virtual void ReadUShort(UShort_t &s);
61  virtual void ReadInt(Int_t &i);
62  virtual void ReadUInt(UInt_t &i);
63  virtual void ReadLong(Long_t &l);
64  virtual void ReadULong(ULong_t &l);
65  virtual void ReadLong64(Long64_t &l);
66  virtual void ReadULong64(ULong64_t &l);
67  virtual void ReadFloat(Float_t &f);
68  virtual void ReadDouble(Double_t &d);
69  virtual void ReadCharP(Char_t *c);
70  virtual void ReadTString(TString &s);
71  virtual void ReadStdString(std::string &s);
72 
73  virtual void WriteBool(Bool_t b);
74  virtual void WriteChar(Char_t c);
75  virtual void WriteUChar(UChar_t c);
76  virtual void WriteShort(Short_t s);
77  virtual void WriteUShort(UShort_t s);
78  virtual void WriteInt(Int_t i);
79  virtual void WriteUInt(UInt_t i);
80  virtual void WriteLong(Long_t l);
81  virtual void WriteULong(ULong_t l);
82  virtual void WriteLong64(Long64_t l);
83  virtual void WriteULong64(ULong64_t l);
84  virtual void WriteFloat(Float_t f);
85  virtual void WriteDouble(Double_t d);
86  virtual void WriteCharP(const Char_t *c);
87  virtual void WriteTString(const TString &s);
88  virtual void WriteStdString(const std::string &s);
89 
90 
91  virtual void WriteFastArray(const Bool_t *b, Int_t n);
92  virtual void WriteFastArray(const Char_t *c, Int_t n);
93  virtual void WriteFastArrayString(const Char_t *c, Int_t n);
94  virtual void WriteFastArray(const UChar_t *c, Int_t n);
95  virtual void WriteFastArray(const Short_t *h, Int_t n);
96  virtual void WriteFastArray(const UShort_t *h, Int_t n);
97  virtual void WriteFastArray(const Int_t *i, Int_t n);
98  virtual void WriteFastArray(const UInt_t *i, Int_t n);
99  virtual void WriteFastArray(const Long_t *l, Int_t n);
100  virtual void WriteFastArray(const ULong_t *l, Int_t n);
101  virtual void WriteFastArray(const Long64_t *l, Int_t n);
102  virtual void WriteFastArray(const ULong64_t *l, Int_t n);
103  virtual void WriteFastArray(const Float_t *f, Int_t n);
104  virtual void WriteFastArray(const Double_t *d, Int_t n);
105  virtual void WriteFastArray(void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0);
106  virtual Int_t WriteFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
107 
108  virtual void ReadFastArray(Bool_t *, Int_t );
109  virtual void ReadFastArray(Char_t *, Int_t );
110  virtual void ReadFastArrayString(Char_t *, Int_t );
111  virtual void ReadFastArray(UChar_t *, Int_t );
112  virtual void ReadFastArray(Short_t *, Int_t );
113  virtual void ReadFastArray(UShort_t *, Int_t );
114  virtual void ReadFastArray(Int_t *, Int_t );
115  virtual void ReadFastArray(UInt_t *, Int_t );
116  virtual void ReadFastArray(Long_t *, Int_t );
117  virtual void ReadFastArray(ULong_t *, Int_t );
118  virtual void ReadFastArray(Long64_t *, Int_t );
119  virtual void ReadFastArray(ULong64_t *, Int_t );
120  virtual void ReadFastArray(Float_t *, Int_t );
121  virtual void ReadFastArray(Double_t *, Int_t );
122  virtual void ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele=0);
123  virtual void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=0);
124  virtual void ReadFastArrayWithFactor(Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue) ;
125  virtual void ReadFastArrayWithNbits(Float_t *ptr, Int_t n, Int_t nbits);
126  virtual void ReadFastArrayWithFactor(Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue);
127  virtual void ReadFastArrayWithNbits(Double_t *ptr, Int_t n, Int_t nbits) ;
128  virtual void ReadFastArray(void *, const TClass *, Int_t n=1, TMemberStreamer *s=0, const TClass *onFileClass=0);
129  virtual void ReadFastArray(void **, const TClass *, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0, const TClass *onFileClass=0);
130 
131  ClassDef(TBufferSQL, 1); // Implementation of TBuffer to load and write to a SQL database
132 
133 };
134 
135 #endif
136 
137 
virtual void ReadLong64(Long64_t &l)
Operator>>
Definition: TBufferSQL.cxx:264
virtual void WriteUShort(UShort_t s)
Operator<<.
Definition: TBufferSQL.cxx:341
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket...
Definition: TBufferFile.h:51
virtual void WriteUChar(UChar_t c)
Operator<<.
Definition: TBufferSQL.cxx:331
long long Long64_t
Definition: RtypesCore.h:69
Implement TBuffer for a SQL backend.
Definition: TBufferSQL.h:34
float Float_t
Definition: RtypesCore.h:53
virtual void WriteChar(Char_t c)
Operator<<.
Definition: TBufferSQL.cxx:160
unsigned short UShort_t
Definition: RtypesCore.h:36
virtual void ReadStdString(std::string &s)
Read a std::string.
Definition: TBufferSQL.cxx:313
TH1 * h
Definition: legend2.C:5
virtual void WriteCharP(const Char_t *c)
Operator<<.
Definition: TBufferSQL.cxx:391
Basic string class.
Definition: TString.h:137
TString * fInsertQuery
Definition: TBufferSQL.h:40
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
void ResetOffset()
Reset Offset.
Definition: TBufferSQL.cxx:800
virtual void ReadFastArrayWithFactor(Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue)
Read array of Float16_t from buffer.
Definition: TBufferSQL.cxx:744
virtual void WriteShort(Short_t s)
Operator<<.
Definition: TBufferSQL.cxx:170
virtual void ReadUChar(UChar_t &c)
Operator>>
Definition: TBufferSQL.cxx:220
std::vector< Int_t >::const_iterator fIter
Definition: TBufferSQL.h:37
virtual void ReadLong(Long_t &l)
Operator>>
Definition: TBufferSQL.cxx:130
virtual void ReadChar(Char_t &c)
Operator>>
Definition: TBufferSQL.cxx:90
virtual void ReadCharP(Char_t *c)
Operator>>
Definition: TBufferSQL.cxx:288
virtual void ReadInt(Int_t &i)
Operator>>
Definition: TBufferSQL.cxx:110
virtual void ReadUShort(UShort_t &s)
Operator>>
Definition: TBufferSQL.cxx:230
virtual void ReadFloat(Float_t &f)
Operator>>
Definition: TBufferSQL.cxx:120
virtual void WriteStdString(const std::string &s)
Write a std::string.
Definition: TBufferSQL.cxx:321
virtual void WriteFastArray(const Bool_t *b, Int_t n)
WriteFastArray SQL implementation.
Definition: TBufferSQL.cxx:402
virtual void WriteFastArrayString(const Char_t *c, Int_t n)
WriteFastArray SQL implementation.
Definition: TBufferSQL.cxx:426
virtual void ReadTString(TString &s)
Read a TString.
Definition: TBufferSQL.cxx:297
ClassDef(TBufferSQL, 1)
virtual void WriteFloat(Float_t f)
Operator<<.
Definition: TBufferSQL.cxx:200
virtual void ReadShort(Short_t &s)
Operator>>
Definition: TBufferSQL.cxx:100
TBufferSQL()
Constructor.
Definition: TBufferSQL.cxx:65
virtual void WriteInt(Int_t i)
Operator<<.
Definition: TBufferSQL.cxx:180
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual void WriteLong(Long_t l)
Operator<<.
Definition: TBufferSQL.cxx:190
std::vector< Int_t > * fColumnVec
Definition: TBufferSQL.h:39
short Short_t
Definition: RtypesCore.h:35
TLine * l
Definition: textangle.C:4
virtual void WriteLong64(Long64_t l)
Operator<<.
Definition: TBufferSQL.cxx:371
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
virtual void ReadFastArray(Bool_t *, Int_t)
ReadFastArray SQL implementation.
Definition: TBufferSQL.cxx:587
long Long_t
Definition: RtypesCore.h:50
void operator=(const TBufferSQL &)
virtual void ReadULong(ULong_t &l)
Operator>>
Definition: TBufferSQL.cxx:252
virtual void ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele=0)
ReadFastArray SQL implementation.
Definition: TBufferSQL.cxx:736
double f(double x)
virtual void WriteBool(Bool_t b)
Operator<<.
Definition: TBufferSQL.cxx:150
double Double_t
Definition: RtypesCore.h:55
virtual void ReadUInt(UInt_t &i)
Operator>>
Definition: TBufferSQL.cxx:240
unsigned long long ULong64_t
Definition: RtypesCore.h:70
unsigned long ULong_t
Definition: RtypesCore.h:51
virtual void ReadFastArrayString(Char_t *, Int_t)
ReadFastArray SQL implementation.
Definition: TBufferSQL.cxx:609
virtual void WriteUInt(UInt_t i)
Operator<<.
Definition: TBufferSQL.cxx:351
~TBufferSQL()
Destructor.
Definition: TBufferSQL.cxx:72
char Char_t
Definition: RtypesCore.h:29
virtual void WriteULong(ULong_t l)
Operator<<.
Definition: TBufferSQL.cxx:361
virtual void ReadDouble(Double_t &d)
Operator>>
Definition: TBufferSQL.cxx:140
virtual void WriteDouble(Double_t d)
Operator<<.
Definition: TBufferSQL.cxx:210
virtual void WriteULong64(ULong64_t l)
Operator<<.
Definition: TBufferSQL.cxx:381
virtual void WriteTString(const TString &s)
Write a TString.
Definition: TBufferSQL.cxx:305
virtual void ReadFastArrayWithNbits(Float_t *ptr, Int_t n, Int_t nbits)
Read array of Float16_t from buffer.
Definition: TBufferSQL.cxx:752
virtual void ReadBool(Bool_t &b)
Operator>>
Definition: TBufferSQL.cxx:80
unsigned char UChar_t
Definition: RtypesCore.h:34
TSQLRow ** fRowPtr
Definition: TBufferSQL.h:41
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void ReadULong64(ULong64_t &l)
Operator>>
Definition: TBufferSQL.cxx:276
const Int_t n
Definition: legend1.C:16
virtual void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=0)
ReadFastArray SQL implementation.
Definition: TBufferSQL.cxx:776