Logo ROOT   6.14/05
Reference Guide
TBufferFile.h
Go to the documentation of this file.
1 // @(#)root/io:$Id: 697641b2b52ed3d97bb5bde0fb5d2ff4a2f6c24f $
2 // Author: Rene Brun 17/01/2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, 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_TBufferFile
13 #define ROOT_TBufferFile
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TBufferFile //
19 // //
20 // The concrete implementation of TBuffer for writing/reading to/from a //
21 // ROOT file or socket. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #include "TBufferIO.h"
26 #include "Bytes.h"
27 
28 #include <vector>
29 
30 #ifdef R__OLDHPACC
31 namespace std {
32  using ::string;
33  using ::vector;
34 }
35 #endif
36 
38 class TStreamerInfo;
39 class TStreamerElement;
40 class TClass;
41 class TVirtualArray;
42 namespace TStreamerInfoActions {
43  class TActionSequence;
44 }
45 
46 class TBufferFile : public TBufferIO {
47 
48 protected:
49  typedef std::vector<TStreamerInfo*> InfoList_t;
50 
51  TStreamerInfo *fInfo{nullptr}; ///< Pointer to TStreamerInfo object writing/reading the buffer
52  InfoList_t fInfoStack; ///< Stack of pointers to the TStreamerInfos
53 
54  // Default ctor
55  TBufferFile() = default;
56 
57  // TBuffer objects cannot be copied or assigned
58  TBufferFile(const TBufferFile &); ///< not implemented
59  void operator=(const TBufferFile &); ///< not implemented
60 
61  Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char* classname);
62  virtual void CheckCount(UInt_t offset);
63  UInt_t CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass = kFALSE);
64 
65  virtual void WriteObjectClass(const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse);
66 
67 public:
68  enum { kStreamedMemberWise = BIT(14) }; //added to version number to know if a collection has been stored member-wise
69 
71  TBufferFile(TBuffer::EMode mode, Int_t bufsiz);
72  TBufferFile(TBuffer::EMode mode, Int_t bufsiz, void *buf, Bool_t adopt = kTRUE, ReAllocCharFun_t reallocfunc = 0);
73  virtual ~TBufferFile();
74 
75  virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss);
76  virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname);
77  virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE);
78 
79  virtual void SkipVersion(const TClass *cl = 0);
80  virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0);
81  virtual Version_t ReadVersionNoCheckSum(UInt_t *start = 0, UInt_t *bcnt = 0);
82  virtual Version_t ReadVersionForMemberWise(const TClass *cl = 0);
83  virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE);
84  virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBcnt = kFALSE);
85 
86  virtual void *ReadObjectAny(const TClass* cast);
87  virtual void SkipObjectAny();
88 
89  virtual void IncrementLevel(TVirtualStreamerInfo* info);
91  virtual void DecrementLevel(TVirtualStreamerInfo*);
93  virtual void ClassBegin(const TClass*, Version_t = -1) {}
94  virtual void ClassEnd(const TClass*) {}
95  virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) {}
96 
97  virtual Int_t ReadBuf(void *buf, Int_t max);
98  virtual void WriteBuf(const void *buf, Int_t max);
99 
100  virtual char *ReadString(char *s, Int_t max);
101  virtual void WriteString(const char *s);
102 
103  virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0);
104  virtual void WriteClass(const TClass *cl);
105 
106  virtual TObject *ReadObject(const TClass *cl);
107 
109 
110  // basic types and arrays of basic types
111  virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0);
112  virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0);
113  virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0);
114  virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0);
115  virtual void ReadWithFactor(Float_t *ptr, Double_t factor, Double_t minvalue);
116  virtual void ReadWithNbits(Float_t *ptr, Int_t nbits);
117  virtual void ReadWithFactor(Double_t *ptr, Double_t factor, Double_t minvalue);
118  virtual void ReadWithNbits(Double_t *ptr, Int_t nbits);
119 
120  virtual Int_t ReadArray(Bool_t *&b);
121  virtual Int_t ReadArray(Char_t *&c);
122  virtual Int_t ReadArray(UChar_t *&c);
123  virtual Int_t ReadArray(Short_t *&h);
124  virtual Int_t ReadArray(UShort_t *&h);
125  virtual Int_t ReadArray(Int_t *&i);
126  virtual Int_t ReadArray(UInt_t *&i);
127  virtual Int_t ReadArray(Long_t *&l);
128  virtual Int_t ReadArray(ULong_t *&l);
129  virtual Int_t ReadArray(Long64_t *&l);
130  virtual Int_t ReadArray(ULong64_t *&l);
131  virtual Int_t ReadArray(Float_t *&f);
132  virtual Int_t ReadArray(Double_t *&d);
133  virtual Int_t ReadArrayFloat16(Float_t *&f, TStreamerElement *ele=0);
134  virtual Int_t ReadArrayDouble32(Double_t *&d, TStreamerElement *ele=0);
135 
136  virtual Int_t ReadStaticArray(Bool_t *b);
137  virtual Int_t ReadStaticArray(Char_t *c);
138  virtual Int_t ReadStaticArray(UChar_t *c);
139  virtual Int_t ReadStaticArray(Short_t *h);
140  virtual Int_t ReadStaticArray(UShort_t *h);
141  virtual Int_t ReadStaticArray(Int_t *i);
142  virtual Int_t ReadStaticArray(UInt_t *i);
143  virtual Int_t ReadStaticArray(Long_t *l);
144  virtual Int_t ReadStaticArray(ULong_t *l);
145  virtual Int_t ReadStaticArray(Long64_t *l);
146  virtual Int_t ReadStaticArray(ULong64_t *l);
147  virtual Int_t ReadStaticArray(Float_t *f);
148  virtual Int_t ReadStaticArray(Double_t *d);
149  virtual Int_t ReadStaticArrayFloat16(Float_t *f, TStreamerElement *ele=0);
150  virtual Int_t ReadStaticArrayDouble32(Double_t *d, TStreamerElement *ele=0);
151 
152  virtual void ReadFastArray(Bool_t *b, Int_t n);
153  virtual void ReadFastArray(Char_t *c, Int_t n);
154  virtual void ReadFastArrayString(Char_t *c, Int_t n);
155  virtual void ReadFastArray(UChar_t *c, Int_t n);
156  virtual void ReadFastArray(Short_t *h, Int_t n);
157  virtual void ReadFastArray(UShort_t *h, Int_t n);
158  virtual void ReadFastArray(Int_t *i, Int_t n);
159  virtual void ReadFastArray(UInt_t *i, Int_t n);
160  virtual void ReadFastArray(Long_t *l, Int_t n);
161  virtual void ReadFastArray(ULong_t *l, Int_t n);
162  virtual void ReadFastArray(Long64_t *l, Int_t n);
163  virtual void ReadFastArray(ULong64_t *l, Int_t n);
164  virtual void ReadFastArray(Float_t *f, Int_t n);
165  virtual void ReadFastArray(Double_t *d, Int_t n);
166  virtual void ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele=0);
167  virtual void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=0);
168  virtual void ReadFastArrayWithFactor(Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue) ;
169  virtual void ReadFastArrayWithNbits(Float_t *ptr, Int_t n, Int_t nbits);
170  virtual void ReadFastArrayWithFactor(Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue);
171  virtual void ReadFastArrayWithNbits(Double_t *ptr, Int_t n, Int_t nbits) ;
172  virtual void ReadFastArray(void *start , const TClass *cl, Int_t n=1, TMemberStreamer *s=0, const TClass* onFileClass=0 );
173  virtual void ReadFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0, const TClass* onFileClass=0);
174 
175  virtual void WriteArray(const Bool_t *b, Int_t n);
176  virtual void WriteArray(const Char_t *c, Int_t n);
177  virtual void WriteArray(const UChar_t *c, Int_t n);
178  virtual void WriteArray(const Short_t *h, Int_t n);
179  virtual void WriteArray(const UShort_t *h, Int_t n);
180  virtual void WriteArray(const Int_t *i, Int_t n);
181  virtual void WriteArray(const UInt_t *i, Int_t n);
182  virtual void WriteArray(const Long_t *l, Int_t n);
183  virtual void WriteArray(const ULong_t *l, Int_t n);
184  virtual void WriteArray(const Long64_t *l, Int_t n);
185  virtual void WriteArray(const ULong64_t *l, Int_t n);
186  virtual void WriteArray(const Float_t *f, Int_t n);
187  virtual void WriteArray(const Double_t *d, Int_t n);
188  virtual void WriteArrayFloat16(const Float_t *f, Int_t n, TStreamerElement *ele=0);
189  virtual void WriteArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele=0);
190 
191  virtual void WriteFastArray(const Bool_t *b, Int_t n);
192  virtual void WriteFastArray(const Char_t *c, Int_t n);
193  virtual void WriteFastArrayString(const Char_t *c, Int_t n);
194  virtual void WriteFastArray(const UChar_t *c, Int_t n);
195  virtual void WriteFastArray(const Short_t *h, Int_t n);
196  virtual void WriteFastArray(const UShort_t *h, Int_t n);
197  virtual void WriteFastArray(const Int_t *i, Int_t n);
198  virtual void WriteFastArray(const UInt_t *i, Int_t n);
199  virtual void WriteFastArray(const Long_t *l, Int_t n);
200  virtual void WriteFastArray(const ULong_t *l, Int_t n);
201  virtual void WriteFastArray(const Long64_t *l, Int_t n);
202  virtual void WriteFastArray(const ULong64_t *l, Int_t n);
203  virtual void WriteFastArray(const Float_t *f, Int_t n);
204  virtual void WriteFastArray(const Double_t *d, Int_t n);
205  virtual void WriteFastArrayFloat16(const Float_t *f, Int_t n, TStreamerElement *ele=0);
206  virtual void WriteFastArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele=0);
207  virtual void WriteFastArray(void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0);
208  virtual Int_t WriteFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
209 
210  virtual void StreamObject(void *obj, const std::type_info &typeinfo, const TClass* onFileClass = 0 );
211  virtual void StreamObject(void *obj, const char *className, const TClass* onFileClass = 0 );
212  virtual void StreamObject(void *obj, const TClass *cl, const TClass* onFileClass = 0 );
213  virtual void StreamObject(TObject *obj);
214 
215  virtual void ReadBool(Bool_t &b);
216  virtual void ReadChar(Char_t &c);
217  virtual void ReadUChar(UChar_t &c);
218  virtual void ReadShort(Short_t &s);
219  virtual void ReadUShort(UShort_t &s);
220  virtual void ReadInt(Int_t &i);
221  virtual void ReadUInt(UInt_t &i);
222  virtual void ReadLong(Long_t &l);
223  virtual void ReadULong(ULong_t &l);
224  virtual void ReadLong64(Long64_t &l);
225  virtual void ReadULong64(ULong64_t &l);
226  virtual void ReadFloat(Float_t &f);
227  virtual void ReadDouble(Double_t &d);
228  virtual void ReadCharP(Char_t *c);
229  virtual void ReadTString(TString &s);
230  virtual void ReadStdString(std::string *s);
232  virtual void ReadCharStar(char* &s);
233 
234  virtual void WriteBool(Bool_t b);
235  virtual void WriteChar(Char_t c);
236  virtual void WriteUChar(UChar_t c);
237  virtual void WriteShort(Short_t s);
238  virtual void WriteUShort(UShort_t s);
239  virtual void WriteInt(Int_t i);
240  virtual void WriteUInt(UInt_t i);
241  virtual void WriteLong(Long_t l);
242  virtual void WriteULong(ULong_t l);
243  virtual void WriteLong64(Long64_t l);
244  virtual void WriteULong64(ULong64_t l);
245  virtual void WriteFloat(Float_t f);
246  virtual void WriteDouble(Double_t d);
247  virtual void WriteCharP(const Char_t *c);
248  virtual void WriteTString(const TString &s);
250  virtual void WriteStdString(const std::string *s);
251  virtual void WriteCharStar(char *s);
252 
253  // Utilities for TClass
254  virtual Int_t ReadClassEmulated(const TClass *cl, void *object, const TClass *onfile_class);
255  virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class);
256  virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class);
257  virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer);
258 
259  // Utilites to streamer using sequences.
260  Int_t ApplySequence(const TStreamerInfoActions::TActionSequence &sequence, void *object);
261  Int_t ApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection);
262  Int_t ApplySequence(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection);
263 
264  ClassDef(TBufferFile,0) //concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket.
265 };
266 
267 
268 //---------------------- TBufferFile inlines ---------------------------------------
269 
270 //______________________________________________________________________________
272 {
273  if (fBufCur + sizeof(UChar_t) > fBufMax) AutoExpand(fBufSize+sizeof(UChar_t));
274  tobuf(fBufCur, b);
275 }
276 
277 //______________________________________________________________________________
279 {
280  if (fBufCur + sizeof(Char_t) > fBufMax) AutoExpand(fBufSize+sizeof(Char_t));
281  tobuf(fBufCur, c);
282 }
283 
284 //______________________________________________________________________________
286 {
287  if (fBufCur + sizeof(UChar_t) > fBufMax) AutoExpand(fBufSize+sizeof(UChar_t));
288  tobuf(fBufCur, (Char_t)c);
289 }
290 
291 //______________________________________________________________________________
293 {
294  if (fBufCur + sizeof(Short_t) > fBufMax) AutoExpand(fBufSize+sizeof(Short_t));
295  tobuf(fBufCur, h);
296 }
297 
298 //______________________________________________________________________________
300 {
301  if (fBufCur + sizeof(UShort_t) > fBufMax) AutoExpand(fBufSize+sizeof(UShort_t));
302  tobuf(fBufCur, (Short_t)h);
303 }
304 
305 //______________________________________________________________________________
307 {
308  if (fBufCur + sizeof(Int_t) > fBufMax) AutoExpand(fBufSize+sizeof(Int_t));
309  tobuf(fBufCur, i);
310 }
311 
312 //______________________________________________________________________________
314 {
315  if (fBufCur + sizeof(UInt_t) > fBufMax) AutoExpand(fBufSize+sizeof(UInt_t));
316  tobuf(fBufCur, (Int_t)i);
317 }
318 
319 //______________________________________________________________________________
321 {
322  if (fBufCur + sizeof(Long_t) > fBufMax) AutoExpand(fBufSize+sizeof(Long_t));
323  tobuf(fBufCur, l);
324 }
325 
326 //______________________________________________________________________________
328 {
329  if (fBufCur + sizeof(ULong_t) > fBufMax) AutoExpand(fBufSize+sizeof(ULong_t));
330  tobuf(fBufCur, (Long_t)l);
331 }
332 
333 //______________________________________________________________________________
335 {
336  if (fBufCur + sizeof(Long64_t) > fBufMax) AutoExpand(fBufSize+sizeof(Long64_t));
337  tobuf(fBufCur, ll);
338 }
339 
340 //______________________________________________________________________________
342 {
343  if (fBufCur + sizeof(ULong64_t) > fBufMax) AutoExpand(fBufSize+sizeof(ULong64_t));
344  tobuf(fBufCur, (Long64_t)ll);
345 }
346 
347 //______________________________________________________________________________
349 {
350  if (fBufCur + sizeof(Float_t) > fBufMax) AutoExpand(fBufSize+sizeof(Float_t));
351  tobuf(fBufCur, f);
352 }
353 
354 //______________________________________________________________________________
356 {
357  if (fBufCur + sizeof(Double_t) > fBufMax) AutoExpand(fBufSize+sizeof(Double_t));
358  tobuf(fBufCur, d);
359 }
360 
361 //______________________________________________________________________________
362 inline void TBufferFile::WriteCharP(const Char_t *c)
363 {
364  WriteString(c);
365 }
366 
367 //______________________________________________________________________________
369 {
370  frombuf(fBufCur, &b);
371 }
372 
373 //______________________________________________________________________________
375 {
376  frombuf(fBufCur, &c);
377 }
378 
379 //______________________________________________________________________________
381 {
383 }
384 
385 //______________________________________________________________________________
387 {
388  frombuf(fBufCur, &h);
389 }
390 
391 //______________________________________________________________________________
393 {
395 }
396 
397 //______________________________________________________________________________
399 {
400  frombuf(fBufCur, &i);
401 }
402 
403 //______________________________________________________________________________
405 {
407 }
408 
409 
410 // in implementation file because special case with old version
411 //______________________________________________________________________________
412 //inline void TBufferFile::ReadLong(Long_t &ll)
413 //{
414 // frombuf(fBufCur, &ll);
415 //}
416 
417 //______________________________________________________________________________
419 {
421 }
422 
423 
424 //______________________________________________________________________________
426 {
427  frombuf(fBufCur, &ll);
428 }
429 
430 //______________________________________________________________________________
432 {
434 }
435 
436 //______________________________________________________________________________
438 {
439  frombuf(fBufCur, &f);
440 }
441 
442 //______________________________________________________________________________
444 {
445  frombuf(fBufCur, &d);
446 }
447 
448 //______________________________________________________________________________
450 {
451  ReadString(c, -1);
452 }
453 
454 //______________________________________________________________________________
456  { return TBufferFile::ReadArray((Char_t *&)c); }
457 //______________________________________________________________________________
459  { return TBufferFile::ReadArray((Short_t *&)h); }
460 //______________________________________________________________________________
462  { return TBufferFile::ReadArray((Int_t *&)i); }
463 //______________________________________________________________________________
465  { return TBufferFile::ReadArray((Long_t *&)l); }
466 //______________________________________________________________________________
468  { return TBufferFile::ReadArray((Long64_t *&)ll); }
469 
470 //______________________________________________________________________________
472  { return TBufferFile::ReadStaticArray((Char_t *)c); }
473 //______________________________________________________________________________
475  { return TBufferFile::ReadStaticArray((Short_t *)h); }
476 //______________________________________________________________________________
478  { return TBufferFile::ReadStaticArray((Int_t *)i); }
479 //______________________________________________________________________________
481  { return TBufferFile::ReadStaticArray((Long_t *)l); }
482 //______________________________________________________________________________
484  { return TBufferFile::ReadStaticArray((Long64_t *)ll); }
485 
486 //______________________________________________________________________________
488  { TBufferFile::ReadFastArray((Char_t *)c, n); }
489 //______________________________________________________________________________
491  { TBufferFile::ReadFastArray((Short_t *)h, n); }
492 //______________________________________________________________________________
494  { TBufferFile::ReadFastArray((Int_t *)i, n); }
495 //______________________________________________________________________________
497  { TBufferFile::ReadFastArray((Long_t *)l, n); }
498 //______________________________________________________________________________
500  { TBufferFile::ReadFastArray((Long64_t *)ll, n); }
501 
502 //______________________________________________________________________________
504  { TBufferFile::WriteArray((const Char_t *)c, n); }
505 //______________________________________________________________________________
507  { TBufferFile::WriteArray((const Short_t *)h, n); }
508 //______________________________________________________________________________
509 inline void TBufferFile::WriteArray(const UInt_t *i, Int_t n)
510  { TBufferFile::WriteArray((const Int_t *)i, n); }
511 //______________________________________________________________________________
512 inline void TBufferFile::WriteArray(const ULong64_t *ll, Int_t n)
513  { TBufferFile::WriteArray((const Long64_t *)ll, n); }
514 
515 //______________________________________________________________________________
517  { TBufferFile::WriteFastArray((const Char_t *)c, n); }
518 //______________________________________________________________________________
520  { TBufferFile::WriteFastArray((const Short_t *)h, n); }
521 //______________________________________________________________________________
523  { TBufferFile::WriteFastArray((const Int_t *)i, n); }
524 //______________________________________________________________________________
526  { TBufferFile::WriteFastArray((const Long64_t *)ll, n); }
527 
528 #endif
Describe Streamer information for one class version.
Definition: TStreamerInfo.h:43
void frombuf(char *&buf, Bool_t *x)
Definition: Bytes.h:280
virtual Int_t ReadArray(Bool_t *&b)
Read array of bools from the I/O buffer.
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket...
Definition: TBufferFile.h:46
long long Long64_t
Definition: RtypesCore.h:69
short Version_t
Definition: RtypesCore.h:61
float Float_t
Definition: RtypesCore.h:53
unsigned short UShort_t
Definition: RtypesCore.h:36
#define BIT(n)
Definition: Rtypes.h:78
char *(* ReAllocCharFun_t)(char *, size_t, size_t)
Definition: TStorage.h:30
Basic string class.
Definition: TString.h:131
#define f(i)
Definition: RSha256.hxx:104
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
std::vector< TStreamerInfo * > InfoList_t
Definition: TBufferFile.h:49
virtual void ReadChar(Char_t &c)
Definition: TBufferFile.h:374
virtual void ClassMember(const char *, const char *=0, Int_t=-1, Int_t=-1)
Definition: TBufferFile.h:95
virtual void ReadUInt(UInt_t &i)
Definition: TBufferFile.h:404
STL namespace.
virtual void ReadLong(Long_t &l)
Read Long from TBuffer.
virtual void WriteBool(Bool_t b)
Definition: TBufferFile.h:271
INLINE_TEMPLATE_ARGS Int_t ReadTString(TBuffer &buf, void *addr, const TConfiguration *config)
virtual void WriteULong(ULong_t l)
Definition: TBufferFile.h:327
virtual void WriteULong64(ULong64_t l)
Definition: TBufferFile.h:341
virtual void ReadFloat(Float_t &f)
Definition: TBufferFile.h:437
virtual void WriteUChar(UChar_t c)
Definition: TBufferFile.h:285
virtual void WriteUShort(UShort_t s)
Definition: TBufferFile.h:299
virtual void ReadLong64(Long64_t &l)
Definition: TBufferFile.h:425
virtual void ReadInt(Int_t &i)
Definition: TBufferFile.h:398
#define ClassDef(name, id)
Definition: Rtypes.h:320
virtual void ReadStdString(std::string *s)=0
virtual void SetStreamerElementNumber(TStreamerElement *, Int_t)
Definition: TBufferFile.h:90
virtual void ReadUChar(UChar_t &c)
Definition: TBufferFile.h:380
void tobuf(char *&buf, Bool_t x)
Definition: Bytes.h:57
virtual void WriteShort(Short_t s)
Definition: TBufferFile.h:292
virtual void ReadULong64(ULong64_t &l)
Definition: TBufferFile.h:431
virtual void WriteUInt(UInt_t i)
Definition: TBufferFile.h:313
virtual Int_t ReadStaticArray(Bool_t *b)
Read array of bools from the I/O buffer.
Wrapper around an object and giving indirect access to its content even if the object is not of a cla...
Definition: TVirtualArray.h:26
unsigned int UInt_t
Definition: RtypesCore.h:42
short Short_t
Definition: RtypesCore.h:35
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
virtual void WriteInt(Int_t i)
Definition: TBufferFile.h:306
virtual void ReadCharP(Char_t *c)
Definition: TBufferFile.h:449
virtual void ClassEnd(const TClass *)
Definition: TBufferFile.h:94
virtual void WriteFloat(Float_t f)
Definition: TBufferFile.h:348
virtual Bool_t CheckObject(const TObject *obj)
Check if the specified object is already in the buffer.
Definition: TBufferIO.cxx:225
#define h(i)
Definition: RSha256.hxx:106
virtual void WriteArray(const Bool_t *b, Int_t n)
Write array of n bools into the I/O buffer.
const Bool_t kFALSE
Definition: RtypesCore.h:88
long Long_t
Definition: RtypesCore.h:50
#define d(i)
Definition: RSha256.hxx:102
virtual void WriteLong(Long_t l)
Definition: TBufferFile.h:320
double Double_t
Definition: RtypesCore.h:55
unsigned long long ULong64_t
Definition: RtypesCore.h:70
unsigned long ULong_t
Definition: RtypesCore.h:51
virtual void WriteDouble(Double_t d)
Definition: TBufferFile.h:355
static constexpr double s
Binding & operator=(OUT(*fun)(void))
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void ReadBool(Bool_t &b)
Definition: TBufferFile.h:368
char Char_t
Definition: RtypesCore.h:29
virtual void WriteCharP(const Char_t *c)
Definition: TBufferFile.h:362
virtual void WriteLong64(Long64_t l)
Definition: TBufferFile.h:334
auto * l
Definition: textangle.C:4
Direct subclass of TBuffer, implements common methods for TBufferFile and TBufferText classes...
Definition: TBufferIO.h:30
virtual void ClassBegin(const TClass *, Version_t=-1)
Definition: TBufferFile.h:93
virtual void WriteFastArray(const Bool_t *b, Int_t n)
Write array of n bools into the I/O buffer.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
virtual void ReadUShort(UShort_t &s)
Definition: TBufferFile.h:392
InfoList_t fInfoStack
Stack of pointers to the TStreamerInfos.
Definition: TBufferFile.h:52
#define c(i)
Definition: RSha256.hxx:101
unsigned char UChar_t
Definition: RtypesCore.h:34
virtual void ReadShort(Short_t &s)
Definition: TBufferFile.h:386
Abstract Interface class describing Streamer information for one class.
TVirtualStreamerInfo * GetInfo()
Definition: TBufferFile.h:92
virtual void ReadULong(ULong_t &l)
Definition: TBufferFile.h:418
virtual void WriteStdString(const std::string *s)=0
const Bool_t kTRUE
Definition: RtypesCore.h:87
const Int_t n
Definition: legend1.C:16
virtual void WriteChar(Char_t c)
Definition: TBufferFile.h:278
virtual void ReadFastArray(Bool_t *b, Int_t n)
Read array of n bools from the I/O buffer.
virtual void ReadDouble(Double_t &d)
Definition: TBufferFile.h:443