// @(#)root/tree:$Id$
// Author: Philippe Canal 2005

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef TBASKETSQL_H
#define TBASKETSQL_H

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TBasketSQL                                                           //
//                                                                      //
// Implement TBasket for a SQL backend                                  //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <vector>
#include "TBasket.h"

class TSQLResult;
class TSQLRow;
class TBufferSQL;

class TBasketSQL : public TBasket
{

private:
   TBasketSQL(const TBasketSQL&);            // TBasketSQL objects are not copiable.
   TBasketSQL& operator=(const TBasketSQL&); // TBasketSQL objects are not copiable.

protected:
   TSQLResult **fResultPtr;    //!
   TSQLRow    **fRowPtr;       //!
   TString      *fInsertQuery; //!

public:
   TBasketSQL();
   TBasketSQL(const char *name, const char *title,
              TBranch *branch, TSQLResult **rs,
              TString *insert_query, std::vector<Int_t> *vc, TSQLRow **row);
   ~TBasketSQL();
   void    PrepareBasket(Long64_t entry);
   virtual Int_t   ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file);
   virtual Int_t   ReadBasketBytes(Long64_t pos, TFile *file);
   virtual void    Reset();
   TSQLResult * GetResultSet() { return *fResultPtr;}
   void CreateBuffer(const char *name, TString title, std::vector<Int_t> * vc, TBranch *branch, TSQLResult ** rs);

   void Update(Int_t offset, Int_t skipped);

   ClassDef(TBasketSQL,1)  //the TBranch buffers

};

#endif
 TBasketSQL.h:1
 TBasketSQL.h:2
 TBasketSQL.h:3
 TBasketSQL.h:4
 TBasketSQL.h:5
 TBasketSQL.h:6
 TBasketSQL.h:7
 TBasketSQL.h:8
 TBasketSQL.h:9
 TBasketSQL.h:10
 TBasketSQL.h:11
 TBasketSQL.h:12
 TBasketSQL.h:13
 TBasketSQL.h:14
 TBasketSQL.h:15
 TBasketSQL.h:16
 TBasketSQL.h:17
 TBasketSQL.h:18
 TBasketSQL.h:19
 TBasketSQL.h:20
 TBasketSQL.h:21
 TBasketSQL.h:22
 TBasketSQL.h:23
 TBasketSQL.h:24
 TBasketSQL.h:25
 TBasketSQL.h:26
 TBasketSQL.h:27
 TBasketSQL.h:28
 TBasketSQL.h:29
 TBasketSQL.h:30
 TBasketSQL.h:31
 TBasketSQL.h:32
 TBasketSQL.h:33
 TBasketSQL.h:34
 TBasketSQL.h:35
 TBasketSQL.h:36
 TBasketSQL.h:37
 TBasketSQL.h:38
 TBasketSQL.h:39
 TBasketSQL.h:40
 TBasketSQL.h:41
 TBasketSQL.h:42
 TBasketSQL.h:43
 TBasketSQL.h:44
 TBasketSQL.h:45
 TBasketSQL.h:46
 TBasketSQL.h:47
 TBasketSQL.h:48
 TBasketSQL.h:49
 TBasketSQL.h:50
 TBasketSQL.h:51
 TBasketSQL.h:52
 TBasketSQL.h:53
 TBasketSQL.h:54
 TBasketSQL.h:55
 TBasketSQL.h:56
 TBasketSQL.h:57
 TBasketSQL.h:58
 TBasketSQL.h:59
 TBasketSQL.h:60
 TBasketSQL.h:61