/usr/include/root/TIsAProxy.h is in libroot-core-dev 5.34.30-0ubuntu8.
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 | // @(#)root/meta:$Id$
// Author: Markus Frank 20/05/2005
/*************************************************************************
* 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_TIsAProxy
#define ROOT_TIsAProxy
#ifndef ROOT_TVirtualIsAProxy
#include "TVirtualIsAProxy.h"
#endif
#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
class TClass;
//////////////////////////////////////////////////////////////////////////
// //
// TIsAProxy implementation class. //
// //
//////////////////////////////////////////////////////////////////////////
class TIsAProxy : public TVirtualIsAProxy {
private:
const type_info *fType; //Actual typeid of the proxy
const type_info *fLastType; //Last used subtype
TClass *fClass; //Actual TClass
TClass *fLastClass; //Last used TClass
Char_t fSubTypes[72]; //map of known sub-types
Bool_t fVirtual; //Flag if class is virtual
void *fContext; //Optional user contex
Bool_t fInit; //Initialization flag
protected:
TIsAProxy(const TIsAProxy&);
TIsAProxy& operator=(const TIsAProxy&);
public:
// Standard initializing constructor
TIsAProxy(const type_info &typ, void *ctxt = 0);
// Standard destructor
virtual ~TIsAProxy();
// Callbacl to set the class
virtual void SetClass(TClass *cl);
// IsA callback
virtual TClass* operator()(const void *obj);
};
//////////////////////////////////////////////////////////////////////////
// //
// TInstrumentedIsAProxy implementation class. //
// //
//////////////////////////////////////////////////////////////////////////
template <class T> class TInstrumentedIsAProxy : public TVirtualIsAProxy {
private:
TClass *fClass; //Actual TClass
protected:
TInstrumentedIsAProxy(const TInstrumentedIsAProxy& iip) :
TVirtualIsAProxy(iip), fClass(iip.fClass) { }
TInstrumentedIsAProxy& operator=(const TInstrumentedIsAProxy& iip)
{if(this!=&iip) {TVirtualIsAProxy::operator=(iip); fClass=iip.fClass;}
return *this;}
public:
// Standard initializing constructor
TInstrumentedIsAProxy(TClass *cl) : fClass(cl) {}
// Standard destructor
virtual ~TInstrumentedIsAProxy() {}
// Callbacl to set the class
virtual void SetClass(TClass *cl) { fClass = cl; }
// IsA callback
virtual TClass* operator()(const void *obj) {
return obj==0 ? fClass : ((T*)obj)->IsA();
}
};
#endif // ROOT_TIsAProxy
|