00001 // @(#)root/meta:$Id: TRefArrayProxy.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Author: Markus Frank 20/05/2005 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TRefArrayProxy 00013 #define ROOT_TRefArrayProxy 00014 #ifndef ROOT_TRefProxy 00015 #include "TRefProxy.h" 00016 #endif 00017 00018 //______________________________________________________________________________ 00019 // 00020 // TRefArrayProxy is a container proxy, which allows to access references stored 00021 // in a TRefArray from TTree::Draw 00022 // 00023 //______________________________________________________________________________ 00024 class TRefArrayProxy : public TRefProxy { 00025 public: 00026 // Default constructor 00027 TRefArrayProxy() : TRefProxy() {} 00028 // Copy constructor 00029 TRefArrayProxy(const TRefArrayProxy& c) : TRefProxy(c) {} 00030 // Standard destructor 00031 virtual ~TRefArrayProxy() {} 00032 // TVirtualRefProxy overload: Clone the reference proxy (virtual constructor) 00033 virtual TVirtualRefProxy* Clone() const { return new TRefArrayProxy(*this);} 00034 // TVirtualRefProxy overload: Flag to indicate if this is a container reference 00035 virtual Bool_t HasCounter() const { return kTRUE; } 00036 // TVirtualRefProxy overload: Access referenced object(-data) 00037 virtual void* GetObject(TFormLeafInfoReference* info, void* data, Int_t instance); 00038 // TVirtualRefProxy overload: Access to container size (if container reference (ie TRefArray) etc) 00039 virtual Int_t GetCounterValue(TFormLeafInfoReference* info, void *data); 00040 }; 00041 #endif // ROOT_TRefArrayProxy