00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TBufferSQL
00013 #define ROOT_TBufferSQL
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef ROOT_TBufferFile
00024 #include "TBufferFile.h"
00025 #endif
00026 #ifndef ROOT_TString
00027 #include "TString.h"
00028 #endif
00029
00030
00031 class TSQLResult;
00032 class TSQLRow;
00033
00034 class TBufferSQL : public TBufferFile {
00035
00036 private:
00037 std::vector<Int_t>::const_iterator fIter;
00038
00039 std::vector<Int_t> *fColumnVec;
00040 TString *fInsertQuery;
00041 TSQLRow **fRowPtr;
00042
00043
00044 TBufferSQL(const TBufferSQL &);
00045 void operator=(const TBufferSQL &);
00046
00047 public:
00048 TBufferSQL();
00049 TBufferSQL(TBuffer::EMode mode, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr);
00050 TBufferSQL(TBuffer::EMode mode, Int_t bufsiz, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr);
00051 TBufferSQL(TBuffer::EMode mode, Int_t bufsiz, std::vector<Int_t> *vc, TString *insert_query, TSQLRow **rowPtr,void *buf, Bool_t adopt = kTRUE);
00052 ~TBufferSQL();
00053
00054 void ResetOffset();
00055
00056 virtual void ReadBool(Bool_t &b);
00057 virtual void ReadChar(Char_t &c);
00058 virtual void ReadUChar(UChar_t &c);
00059 virtual void ReadShort(Short_t &s);
00060 virtual void ReadUShort(UShort_t &s);
00061 virtual void ReadInt(Int_t &i);
00062 virtual void ReadUInt(UInt_t &i);
00063 virtual void ReadLong(Long_t &l);
00064 virtual void ReadULong(ULong_t &l);
00065 virtual void ReadLong64(Long64_t &l);
00066 virtual void ReadULong64(ULong64_t &l);
00067 virtual void ReadFloat(Float_t &f);
00068 virtual void ReadDouble(Double_t &d);
00069 virtual void ReadCharP(Char_t *c);
00070 virtual void ReadTString(TString &s);
00071
00072 virtual void WriteBool(Bool_t b);
00073 virtual void WriteChar(Char_t c);
00074 virtual void WriteUChar(UChar_t c);
00075 virtual void WriteShort(Short_t s);
00076 virtual void WriteUShort(UShort_t s);
00077 virtual void WriteInt(Int_t i);
00078 virtual void WriteUInt(UInt_t i);
00079 virtual void WriteLong(Long_t l);
00080 virtual void WriteULong(ULong_t l);
00081 virtual void WriteLong64(Long64_t l);
00082 virtual void WriteULong64(ULong64_t l);
00083 virtual void WriteFloat(Float_t f);
00084 virtual void WriteDouble(Double_t d);
00085 virtual void WriteCharP(const Char_t *c);
00086 virtual void WriteTString(const TString &s);
00087
00088
00089 virtual void WriteFastArray(const Bool_t *b, Int_t n);
00090 virtual void WriteFastArray(const Char_t *c, Int_t n);
00091 virtual void WriteFastArrayString(const Char_t *c, Int_t n);
00092 virtual void WriteFastArray(const UChar_t *c, Int_t n);
00093 virtual void WriteFastArray(const Short_t *h, Int_t n);
00094 virtual void WriteFastArray(const UShort_t *h, Int_t n);
00095 virtual void WriteFastArray(const Int_t *i, Int_t n);
00096 virtual void WriteFastArray(const UInt_t *i, Int_t n);
00097 virtual void WriteFastArray(const Long_t *l, Int_t n);
00098 virtual void WriteFastArray(const ULong_t *l, Int_t n);
00099 virtual void WriteFastArray(const Long64_t *l, Int_t n);
00100 virtual void WriteFastArray(const ULong64_t *l, Int_t n);
00101 virtual void WriteFastArray(const Float_t *f, Int_t n);
00102 virtual void WriteFastArray(const Double_t *d, Int_t n);
00103 virtual void WriteFastArray(void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0);
00104 virtual Int_t WriteFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
00105
00106 virtual void ReadFastArray(Bool_t *, Int_t );
00107 virtual void ReadFastArray(Char_t *, Int_t );
00108 virtual void ReadFastArrayString(Char_t *, Int_t );
00109 virtual void ReadFastArray(UChar_t *, Int_t );
00110 virtual void ReadFastArray(Short_t *, Int_t );
00111 virtual void ReadFastArray(UShort_t *, Int_t );
00112 virtual void ReadFastArray(Int_t *, Int_t );
00113 virtual void ReadFastArray(UInt_t *, Int_t );
00114 virtual void ReadFastArray(Long_t *, Int_t );
00115 virtual void ReadFastArray(ULong_t *, Int_t );
00116 virtual void ReadFastArray(Long64_t *, Int_t );
00117 virtual void ReadFastArray(ULong64_t *, Int_t );
00118 virtual void ReadFastArray(Float_t *, Int_t );
00119 virtual void ReadFastArray(Double_t *, Int_t );
00120 virtual void ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele=0);
00121 virtual void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=0);
00122 virtual void ReadFastArray(void *, const TClass *, Int_t n=1, TMemberStreamer *s=0, const TClass *onFileClass=0);
00123 virtual void ReadFastArray(void **, const TClass *, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0, const TClass *onFileClass=0);
00124
00125 ClassDef(TBufferSQL, 1);
00126
00127 };
00128
00129 #endif
00130
00131