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.5 2005/08/26 15:43:36 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 /// Authors: 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
45 AliMpVPadIterator* fIterator; //The pad iterator
47 ClassDef(AliMpPadIteratorPtr,1) // Pointer to abstract pad iterator
50 #endif // ALI_MP_PAD_ITERATOR_PTR_H