/usr/include/root/TGenCollectionStreamer.h is in libroot-io-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | // @(#)root/io:$Id$
// Author: Markus Frank 28/10/04
/*************************************************************************
* Copyright (C) 1995-2004, 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 ROOT_TGenCollectionStreamer
#define ROOT_TGenCollectionStreamer
//////////////////////////////////////////////////////////////////////////
// //
// TGenCollectionStreamer
//
// Streamer around an arbitrary STL like container, which implements basic
// container functionality.
//
//////////////////////////////////////////////////////////////////////////
#include "TGenCollectionProxy.h"
#include "TCollectionProxyFactory.h"
class TGenCollectionStreamer : public TGenCollectionProxy {
protected:
void ReadMapHelper(StreamHelper *i, Value *v, Bool_t vsn3, TBuffer &b);
void ReadMap(int nElements, TBuffer &b, const TClass *onfileClass);
void ReadPairFromMap(int nElements, TBuffer &b);
void ReadObjects(int nElements, TBuffer &b, const TClass *onfileClass);
void ReadPrimitives(int nElements, TBuffer &b, const TClass *onfileClass);
void WriteMap(int nElements, TBuffer &b);
void WriteObjects(int nElements, TBuffer &b);
void WritePrimitives(int nElements, TBuffer &b);
// typedef void (TGenCollectionStreamer::*ReadBufferConv_t)(TBuffer &b, void *obj, const TClass *onFileClass);
// ReadBufferConv_t fReadBufferConvFunc;
typedef void (TGenCollectionStreamer::*ReadBuffer_t)(TBuffer &b, void *obj, const TClass *onFileClass);
ReadBuffer_t fReadBufferFunc;
template <typename From, typename To> void ConvertBufferVectorPrimitives(TBuffer &b, void *obj, Int_t nElements);
template <typename To> void ConvertBufferVectorPrimitivesFloat16(TBuffer &b, void *obj, Int_t nElements);
template <typename To> void ConvertBufferVectorPrimitivesDouble32(TBuffer &b, void *obj, Int_t nElements);
template <typename To> void DispatchConvertBufferVectorPrimitives(TBuffer &b, void *obj, Int_t nElements, const TVirtualCollectionProxy *onfileProxy);
template <typename basictype> void ReadBufferVectorPrimitives(TBuffer &b, void *obj, const TClass *onFileClass);
void ReadBufferVectorPrimitivesFloat16(TBuffer &b, void *obj, const TClass *onFileClass);
void ReadBufferVectorPrimitivesDouble32(TBuffer &b, void *obj, const TClass *onFileClass);
void ReadBufferDefault(TBuffer &b, void *obj, const TClass *onFileClass);
void ReadBufferGeneric(TBuffer &b, void *obj, const TClass *onFileClass);
private:
TGenCollectionStreamer &operator=(const TGenCollectionStreamer&); // Not implemented.
public:
// Virtual copy constructor
virtual TVirtualCollectionProxy* Generate() const;
// Copy constructor
TGenCollectionStreamer(const TGenCollectionStreamer& copy);
// Initializing constructor
TGenCollectionStreamer(Info_t typ, size_t iter_size);
TGenCollectionStreamer(const ROOT::TCollectionProxyInfo &info, TClass *cl);
// Standard destructor
virtual ~TGenCollectionStreamer();
// Streamer I/O overload
virtual void Streamer(TBuffer &refBuffer);
// Streamer I/O overload
virtual void StreamerAsMap(TBuffer &refBuffer);
// Streamer I/O overload
virtual void Streamer(TBuffer &buff, void *pObj, int siz) {
TGenCollectionProxy::Streamer(buff, pObj, siz);
}
// Routine to read the content of the buffer into 'obj'.
virtual void ReadBuffer(TBuffer &b, void *obj, const TClass *onfileClass);
// Routine to read the content of the buffer into 'obj'.
virtual void ReadBuffer(TBuffer &b, void *obj);
};
template <typename T>
struct AnyCollectionStreamer : public TGenCollectionStreamer {
AnyCollectionStreamer()
: TGenCollectionStreamer(typeid(T::Cont_t),sizeof(T::Iter_t)) {
fValDiff = sizeof(T::Value_t);
fValOffset = T::value_offset();
fSize.call = T::size;
fFirst.call = T::first;
fNext.call = T::next;
fClear.call = T::clear;
fResize = T::resize;
fCollect = T::collect;
fConstruct = T::construct;
fDestruct = T::destruct;
fFeed = T::feed;
CheckFunctions();
}
virtual ~AnyCollectionStreamer() { }
};
// Forward declaration in the event of later seperation
typedef TGenCollectionStreamer TGenMapStreamer;
#endif
|