00001
00002
00003 #ifndef XAODCORE_TDVCOLLECTIONPROXY_H
00004 #define XAODCORE_TDVCOLLECTIONPROXY_H
00005
00006
00007 #include <cstddef>
00008
00009
00010 #include <TGenCollectionProxy.h>
00011
00012
00013 class TClass;
00014
00015 namespace xAOD {
00016
00019 class TDVCollectionProxyDummy {};
00020
00040 class TDVCollectionProxy
00041 : public TGenCollectionProxy {
00042
00043 public:
00045 typedef TGenCollectionProxy::Sizing_t Sizing_t;
00046
00052 TDVCollectionProxy( const char* conttype );
00055 TDVCollectionProxy( const TDVCollectionProxy& rhs );
00056
00059 virtual void PushProxy( void* objstart );
00060
00062 virtual TVirtualCollectionProxy* Generate() const;
00063
00065 void SetResize( Sizing_t func );
00066
00067 private:
00069 virtual TGenCollectionProxy* InitializeEx( Bool_t silent );
00071 void FindOffsets( const char* elttype,
00072 const char* conttype );
00073
00075 TString fName;
00077 Bool_t fInitialized;
00078
00080 ptrdiff_t fContoff;
00082 ptrdiff_t fOffset;
00083
00085 TClass* fEltBase;
00087 TClass* fEltType;
00088
00089
00090 TDVCollectionProxy& operator=( const TDVCollectionProxy& );
00091
00092 };
00093
00094 }
00095
00096 #endif // XAODCORE_TDVCOLLECTIONPROXY_H