/usr/include/root/TVirtualArray.h is in libroot-io-dev 5.34.14-1build1.
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 | // @(#)root/io:$Id$
// Author: Philippe Canal July, 2008
/*************************************************************************
* 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 ROOT_TVirtualArray
#define ROOT_TVirtualArray
//////////////////////////////////////////////////////////////////////////
// //
// TVirtualArray //
// //
// Wrapper around an object and giving indirect access to its content //
// even if the object is not of a class in the Cint/Reflex dictionary. //
// //
//////////////////////////////////////////////////////////////////////////
#include "TClassRef.h"
class TVirtualArray {
public:
TClassRef fClass;
UInt_t fCapacity;
UInt_t fSize;
char *fArray; //[fSize]
TVirtualArray( TClass *cl, UInt_t size ) : fClass(cl), fCapacity(size), fSize(size), fArray( (char*)( cl ? cl->NewArray(size) : 0) ) {};
~TVirtualArray() { if (fClass) fClass->DeleteArray( fArray ); }
TClass *GetClass() { return fClass; }
char *operator[](UInt_t ind) const { return GetObjectAt(ind); }
char *GetObjectAt(UInt_t ind) const { return fArray+fClass->Size()*ind; }
void SetSize(UInt_t size) {
// Set the used size of this array to 'size'. If size is greater than the existing
// capacity, reallocate the array BUT no data is preserved.
fSize = size;
if (fSize > fCapacity && fClass) {
fClass->DeleteArray( fArray );
fArray = (char*)fClass->NewArray(fSize);
fCapacity = fSize;
}
}
};
#endif // ROOT_TVirtualArray
|