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 virtual ~AliMpPadIteratorPtr();
32 AliMpVPadIterator* operator->() { return fIterator; }
34 AliMpVPadIterator& operator*() { return *fIterator; }
38 AliMpPadIteratorPtr(const AliMpPadIteratorPtr& right);
40 AliMpPadIteratorPtr& operator=(const AliMpPadIteratorPtr& right);
41 // copy and assignment are disallowed to avoid
42 // multiple deletion of fIterator
45 AliMpVPadIterator* fIterator; ///< The pad iterator
47 ClassDef(AliMpPadIteratorPtr,1) // Pointer to abstract pad iterator
50 #endif // ALI_MP_PAD_ITERATOR_PTR_H