/usr/include/root/TEmulatedCollectionProxy.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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | // @(#)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_TEmulatedCollectionProxy
#define ROOT_TEmulatedCollectionProxy
//////////////////////////////////////////////////////////////////////////
// //
// TEmulatedCollectionProxy
//
// Streamer around an arbitrary STL like container, which implements basic
// container functionality.
//
// Note:
// Although this class contains all the setup necessary to deal
// with maps, the map-like functionality is NOT supported.
// For optimization reasons this functionality is put into
// the class TEmulatedMapProxy.
//
//////////////////////////////////////////////////////////////////////////
#include "TGenCollectionProxy.h"
class TEmulatedCollectionProxy : public TGenCollectionProxy {
// Friend declaration
friend class TCollectionProxy;
public:
// Container type definition
typedef std::vector<char> Cont_t;
// Pointer to container type
typedef Cont_t *PCont_t;
protected:
// Some hack to avoid const-ness
virtual TGenCollectionProxy* InitializeEx(Bool_t silent);
// Object input streamer
void ReadItems(int nElements, TBuffer &b);
// Object output streamer
void WriteItems(int nElements, TBuffer &b);
// Shrink the container
void Shrink(UInt_t nCurr, UInt_t left, Bool_t force);
// Expand the container
void Expand(UInt_t nCurr, UInt_t left);
private:
TEmulatedCollectionProxy &operator=(const TEmulatedCollectionProxy &); // Not implemented.
public:
// Virtual copy constructor
virtual TVirtualCollectionProxy* Generate() const;
// Copy constructor
TEmulatedCollectionProxy(const TEmulatedCollectionProxy& copy);
// Initializing constructor
TEmulatedCollectionProxy(const char* cl_name, Bool_t silent);
// Standard destructor
virtual ~TEmulatedCollectionProxy();
// Virtual constructor
virtual void* New() const { return new Cont_t; }
// Virtual in-place constructor
virtual void* New(void* memory) const { return new(memory) Cont_t; }
// Virtual array constructor
virtual void* NewArray(Int_t nElements) const { return new Cont_t[nElements]; }
// Virtual in-place constructor
virtual void* NewArray(Int_t nElements, void* memory) const { return new(memory) Cont_t[nElements]; }
// Virtual destructor
virtual void Destructor(void* p, Bool_t dtorOnly = kFALSE) const;
// Virtual array destructor
virtual void DeleteArray(void* p, Bool_t dtorOnly = kFALSE) const;
// TVirtualCollectionProxy overload: Return the sizeof the collection object.
virtual UInt_t Sizeof() const { return sizeof(Cont_t); }
// Return the address of the value at index 'idx'
virtual void *At(UInt_t idx);
// Clear the container
virtual void Clear(const char *opt = "");
// Resize the container
virtual void Resize(UInt_t n, Bool_t force_delete);
// Return the current size of the container
virtual UInt_t Size() const;
// Block allocation of containees
virtual void* Allocate(UInt_t n, Bool_t forceDelete);
// Block commit of containees
virtual void Commit(void* env);
// Read portion of the streamer
virtual void ReadBuffer(TBuffer &buff, void *pObj);
virtual void ReadBuffer(TBuffer &buff, void *pObj, const TClass *onfile);
// Streamer for I/O handling
virtual void Streamer(TBuffer &refBuffer);
// Streamer I/O overload
virtual void Streamer(TBuffer &buff, void *pObj, int siz) {
TGenCollectionProxy::Streamer(buff,pObj,siz);
}
// Check validity of the proxy itself
Bool_t IsValid() const;
};
#endif
|