TBufferSQL2.cxx File Reference

#include "TBufferSQL2.h"
#include "TObjArray.h"
#include "TROOT.h"
#include "TDataType.h"
#include "TClass.h"
#include "TClassTable.h"
#include "TMap.h"
#include "TExMap.h"
#include "TMethodCall.h"
#include "TStreamerInfo.h"
#include "TStreamerElement.h"
#include "TProcessID.h"
#include "TFile.h"
#include "TMemberStreamer.h"
#include "TStreamer.h"
#include "Riostream.h"
#include <stdlib.h>
#include "TStreamerInfoActions.h"
#include "TSQLServer.h"
#include "TSQLResult.h"
#include "TSQLRow.h"
#include "TSQLStructure.h"
#include "TSQLObjectData.h"
#include "TSQLFile.h"
#include "TSQLClassInfo.h"

Go to the source code of this file.

Defines

#define FLong64   "%lld"
#define FULong64   "%llu"
#define SQLReadArrayUncompress(vname, arrsize)
#define SQLReadArrayCompress(vname, arrsize)
#define SQLReadArrayContent(vname, arrsize, withsize)
#define TBufferSQL2_ReadArray(tname, vname)
#define TBufferSQL2_ReadStaticArray(vname)
#define TBufferSQL2_ReadFastArray(vname)
#define SQLWriteArrayNoncompress(vname, arrsize)
#define SQLWriteArrayCompress(vname, arrsize)
#define SQLWriteArrayContent(vname, arrsize, withsize)
#define TBufferSQL2_WriteArray(vname)
#define TBufferSQL2_WriteFastArray(vname)
#define TBufferSQL2_operatorin(vname)
#define TBufferSQL2_operatorout(vname)

Functions

 ClassImp (TBufferSQL2)


Define Documentation

#define FLong64   "%lld"

Definition at line 55 of file TBufferSQL2.cxx.

Referenced by sqlio::atol64(), TBufferSQL2::SqlReadBasic(), TBufferSQL2::SqlReadObject(), TBufferXML::XmlReadBasic(), and TBufferXML::XmlWriteBasic().

#define FULong64   "%llu"

Definition at line 56 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::SqlReadBasic(), TBufferSQL2::SqlWriteBasic(), TBufferXML::XmlReadBasic(), and TBufferXML::XmlWriteBasic().

#define SQLReadArrayCompress ( vname,
arrsize   ) 

Value:

{                                                                    \
      while(indx<arrsize) {                                             \
         const char* name = fCurrentData->GetBlobPrefixName();          \
         Int_t first, last, res;                                        \
         if (strstr(name,sqlio::IndexSepar)==0) {                       \
            res = sscanf(name,"[%d", &first); last = first;             \
         } else res = sscanf(name,"[%d..%d", &first, &last);            \
         if (gDebug>5) cout << name << " first = " << first << " last = " << last << " res = " << res << endl; \
         if ((first!=indx) || (last<first) || (last>=arrsize)) {        \
            Error("SQLReadArrayCompress","Error reading array content %s", name); \
            fErrorFlag = 1;                                             \
            break;                                                      \
         }                                                              \
         SqlReadBasic(vname[indx]); indx++;                             \
         while(indx<=last)                                              \
            vname[indx++] = vname[first];                               \
      }                                                                 \
   }

Definition at line 1022 of file TBufferSQL2.cxx.

#define SQLReadArrayContent ( vname,
arrsize,
withsize   ) 

Value:

{                                                                    \
      if (gDebug>3) cout << "SQLReadArrayContent  " << (arrsize) << endl; \
      PushStack()->SetArray(withsize ? arrsize : -1);                   \
      Int_t indx = 0;                                                   \
      if (fCurrentData->IsBlobData())                                   \
         SQLReadArrayCompress(vname, arrsize)                           \
         else                                                           \
            SQLReadArrayUncompress(vname, arrsize)                      \
               PopStack();                                              \
      if (gDebug>3) cout << "SQLReadArrayContent done " << endl;        \
   }

Definition at line 1044 of file TBufferSQL2.cxx.

#define SQLReadArrayUncompress ( vname,
arrsize   ) 

Value:

{                                            \
      while(indx<arrsize)                       \
         SqlReadBasic(vname[indx++]);           \
   }

Definition at line 1015 of file TBufferSQL2.cxx.

#define SQLWriteArrayCompress ( vname,
arrsize   ) 

Value:

{                                                                    \
      Int_t indx = 0;                                                   \
      while(indx<arrsize) {                                             \
         Int_t curr = indx; indx++;                                     \
         while ((indx<arrsize) && (vname[indx]==vname[curr])) indx++;   \
         SqlWriteBasic(vname[curr]);                                    \
         Stack()->ChildArrayIndex(curr, indx-curr);                     \
      }                                                                 \
   }

Definition at line 1644 of file TBufferSQL2.cxx.

#define SQLWriteArrayContent ( vname,
arrsize,
withsize   ) 

Value:

{                                                    \
      PushStack()->SetArray(withsize ? arrsize : -1);   \
      if (fCompressLevel>0) {                           \
         SQLWriteArrayCompress(vname, arrsize)          \
            } else {                                    \
         SQLWriteArrayNoncompress(vname, arrsize)       \
            }                                           \
      PopStack();                                       \
   }

Definition at line 1655 of file TBufferSQL2.cxx.

#define SQLWriteArrayNoncompress ( vname,
arrsize   ) 

Value:

{                                                    \
      for(Int_t indx=0;indx<arrsize;indx++) {           \
         SqlWriteBasic(vname[indx]);                    \
         Stack()->ChildArrayIndex(indx, 1);             \
      }                                                 \
   }

Definition at line 1635 of file TBufferSQL2.cxx.

#define TBufferSQL2_operatorin ( vname   ) 

Value:

{                                            \
      SqlReadBasic(vname);                      \
   }

Definition at line 2080 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::ReadBool(), TBufferSQL2::ReadChar(), TBufferSQL2::ReadDouble(), TBufferSQL2::ReadFloat(), TBufferSQL2::ReadInt(), TBufferSQL2::ReadLong(), TBufferSQL2::ReadLong64(), TBufferSQL2::ReadShort(), TBufferSQL2::ReadUChar(), TBufferSQL2::ReadUInt(), TBufferSQL2::ReadULong(), TBufferSQL2::ReadULong64(), and TBufferSQL2::ReadUShort().

#define TBufferSQL2_operatorout ( vname   ) 

Value:

{                                            \
      SqlWriteBasic(vname);                     \
   }

Definition at line 2219 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::WriteBool(), TBufferSQL2::WriteChar(), TBufferSQL2::WriteDouble(), TBufferSQL2::WriteFloat(), TBufferSQL2::WriteInt(), TBufferSQL2::WriteLong(), TBufferSQL2::WriteLong64(), TBufferSQL2::WriteShort(), TBufferSQL2::WriteUChar(), TBufferSQL2::WriteUInt(), TBufferSQL2::WriteULong(), TBufferSQL2::WriteULong64(), and TBufferSQL2::WriteUShort().

#define TBufferSQL2_ReadArray ( tname,
vname   ) 

Value:

{                                            \
      Int_t n = SqlReadArraySize();             \
      if (n<=0) return 0;                       \
      if (!vname) vname = new tname[n];         \
      SQLReadArrayContent(vname, n, kTRUE);     \
      return n;                                 \
   }

Definition at line 1058 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::ReadArray(), TBufferSQL2::ReadArrayDouble32(), and TBufferSQL2::ReadArrayFloat16().

#define TBufferSQL2_ReadFastArray ( vname   ) 

Value:

{                                                                    \
      if (n<=0) return;                                                 \
      TStreamerElement* elem = Stack(0)->GetElement();                  \
      if ((elem!=0) && (elem->GetType()>TStreamerInfo::kOffsetL) &&     \
          (elem->GetType()<TStreamerInfo::kOffsetP) &&                  \
          (elem->GetArrayLength()!=n)) fExpectedChain = kTRUE;          \
      if (fExpectedChain) {                                             \
         fExpectedChain = kFALSE;                                       \
         Int_t startnumber = Stack(0)->GetElementNumber();              \
         TStreamerInfo* info = Stack(1)->GetStreamerInfo();             \
         Int_t number = 0;                                              \
         Int_t index = 0;                                               \
         while (index<n) {                                              \
            elem = info->GetStreamerElementReal(startnumber, number++); \
            if (number>1) { PopStack(); WorkWithElement(elem, startnumber); } \
            if (elem->GetType()<TStreamerInfo::kOffsetL) {              \
               SqlReadBasic(vname[index]);                              \
               index++;                                                 \
            } else {                                                    \
               Int_t elemlen = elem->GetArrayLength();                  \
               SQLReadArrayContent((vname+index), elemlen, kFALSE);     \
               index+=elemlen;                                          \
            }                                                           \
         }                                                              \
      } else {                                                          \
         SQLReadArrayContent(vname, n, kFALSE);                         \
      }                                                                 \
   }

Definition at line 1391 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::ReadFastArray(), TBufferSQL2::ReadFastArrayDouble32(), and TBufferSQL2::ReadFastArrayFloat16().

#define TBufferSQL2_ReadStaticArray ( vname   ) 

Value:

{                                            \
      Int_t n = SqlReadArraySize();             \
      if (n<=0) return 0;                       \
      if (!vname) return 0;                     \
      SQLReadArrayContent(vname, n, kTRUE);     \
      return n;                                 \
   }

Definition at line 1260 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::ReadStaticArray(), TBufferSQL2::ReadStaticArrayDouble32(), and TBufferSQL2::ReadStaticArrayFloat16().

#define TBufferSQL2_WriteArray ( vname   ) 

Value:

{                                            \
      SQLWriteArrayContent(vname, n, kTRUE);    \
   }

Definition at line 1667 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::WriteArray(), TBufferSQL2::WriteArrayDouble32(), and TBufferSQL2::WriteArrayFloat16().

#define TBufferSQL2_WriteFastArray ( vname   ) 

Value:

{                                                                    \
      if (n<=0) return;                                                 \
      TStreamerElement* elem = Stack(0)->GetElement();                  \
      if ((elem!=0) && (elem->GetType()>TStreamerInfo::kOffsetL) &&     \
          (elem->GetType()<TStreamerInfo::kOffsetP) &&                  \
          (elem->GetArrayLength()!=n)) fExpectedChain = kTRUE;          \
      if (fExpectedChain) {                                             \
         TStreamerInfo* info = Stack(1)->GetStreamerInfo();             \
         Int_t startnumber = Stack(0)->GetElementNumber();              \
         Int_t number = 0;                                              \
         Int_t index = 0;                                               \
         while (index<n) {                                              \
            elem = info->GetStreamerElementReal(startnumber, number++); \
            if (number>1) { PopStack(); WorkWithElement(elem, startnumber + number); } \
            if (elem->GetType()<TStreamerInfo::kOffsetL) {              \
               SqlWriteBasic(vname[index]);                             \
               index++;                                                 \
            } else {                                                    \
               Int_t elemlen = elem->GetArrayLength();                  \
               SQLWriteArrayContent((vname+index), elemlen, kFALSE);    \
               index+=elemlen;                                          \
            }                                                           \
            fExpectedChain = kFALSE;                                    \
         }                                                              \
      } else {                                                          \
         SQLWriteArrayContent(vname, n, kFALSE);                        \
      }                                                                 \
   }

Definition at line 1794 of file TBufferSQL2.cxx.

Referenced by TBufferSQL2::WriteFastArray(), TBufferSQL2::WriteFastArrayDouble32(), and TBufferSQL2::WriteFastArrayFloat16().


Function Documentation

ClassImp ( TBufferSQL2   ) 


Generated on Tue Jul 5 16:06:52 2011 for ROOT_528-00b_version by  doxygen 1.5.1