TBufferSQL.h

Go to the documentation of this file.
00001 // @(#)root/tree:$Id: TBufferSQL.h 25450 2008-09-18 21:13:42Z pcanal $
00002 // Author: Philippe Canal 2005
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TBufferSQL
00013 #define ROOT_TBufferSQL
00014 
00015 //////////////////////////////////////////////////////////////////////////
00016 //                                                                      //
00017 // TBufferSQL                                                           //
00018 //                                                                      //
00019 // Implement TBuffer for a SQL backend                                  //
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    // TBuffer objects cannot be copied or assigned
00044    TBufferSQL(const TBufferSQL &);        // not implemented
00045    void operator=(const TBufferSQL &);    // not implemented
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); // Implementation of TBuffer to load and write to a SQL database
00126 
00127 };
00128 
00129 #endif
00130 
00131 

Generated on Tue Jul 5 14:26:37 2011 for ROOT_528-00b_version by  doxygen 1.5.1