1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpPadIteratorPtr.h,v 1.7 2006/05/24 13:58:07 ivana Exp $
8 /// \class AliMpPadIteratorPtr
9 /// \brief A pointer to the virtual pad iterator;
11 /// It enables to allocate the virtual pad iterator on stack.
13 /// AliMpVIndexed* myIndexed = MyIndexed(); \n
14 /// MVIterator& it = *AliMpPadIteratorPtr(myIndexed->CreateIterator()); \n
16 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
18 #ifndef ALI_MP_PAD_ITERATOR_PTR_H
19 #define ALI_MP_PAD_ITERATOR_PTR_H
23 class AliMpVPadIterator;
25 class AliMpPadIteratorPtr : public TObject
28 AliMpPadIteratorPtr(AliMpVPadIterator* it);
29 // AliMpPadIteratorPtr(const AliMpPadIteratorPtr& right); --> private
30 virtual ~AliMpPadIteratorPtr();
32 AliMpVPadIterator* operator->() { return fIterator; }
33 AliMpVPadIterator& operator*() { return *fIterator; }
36 AliMpPadIteratorPtr(const AliMpPadIteratorPtr& right);
39 AliMpPadIteratorPtr& operator=(const AliMpPadIteratorPtr& right);
40 // copy and assignment are disallowed to avoid
41 // multiple deletion of fIterator
44 AliMpVPadIterator* fIterator; ///< The pad iterator
46 ClassDef(AliMpPadIteratorPtr,1) // Pointer to abstract pad iterator
49 #endif // ALI_MP_PAD_ITERATOR_PTR_H