dee1d5f1 |
1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ |
3 | |
5f91c9e8 |
4 | // $Id$ |
829425a5 |
5 | // $MpId: AliMpPadIteratorPtr.h,v 1.6 2006/05/23 13:07:29 ivana Exp $ |
dee1d5f1 |
6 | |
7 | /// \ingroup basic |
8 | /// \class AliMpPadIteratorPtr |
9 | /// \brief A pointer to the virtual pad iterator; |
10 | /// |
11 | /// It enables to allocate the virtual pad iterator on stack. |
12 | /// Usage: \n |
13 | /// AliMpVIndexed* myIndexed = MyIndexed(); \n |
14 | /// MVIterator& it = *AliMpPadIteratorPtr(myIndexed->CreateIterator()); \n |
15 | /// |
16 | /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay |
5f91c9e8 |
17 | |
18 | #ifndef ALI_MP_PAD_ITERATOR_PTR_H |
19 | #define ALI_MP_PAD_ITERATOR_PTR_H |
20 | |
21 | #include <TObject.h> |
22 | |
2998a151 |
23 | class AliMpVPadIterator; |
5f91c9e8 |
24 | |
25 | class AliMpPadIteratorPtr : public TObject |
26 | { |
27 | public: |
28 | AliMpPadIteratorPtr(AliMpVPadIterator* it); |
29 | // AliMpPadIteratorPtr(const AliMpPadIteratorPtr& right); --> private |
30 | virtual ~AliMpPadIteratorPtr(); |
31 | |
32 | AliMpVPadIterator* operator->() { return fIterator; } |
33 | AliMpVPadIterator& operator*() { return *fIterator; } |
34 | |
2998a151 |
35 | protected: |
5f91c9e8 |
36 | AliMpPadIteratorPtr(const AliMpPadIteratorPtr& right); |
2998a151 |
37 | |
38 | // operators |
5f91c9e8 |
39 | AliMpPadIteratorPtr& operator=(const AliMpPadIteratorPtr& right); |
2998a151 |
40 | // copy and assignment are disallowed to avoid |
41 | // multiple deletion of fIterator |
42 | |
43 | private: |
5f91c9e8 |
44 | // data members |
829425a5 |
45 | AliMpVPadIterator* fIterator; ///< The pad iterator |
5f91c9e8 |
46 | |
47 | ClassDef(AliMpPadIteratorPtr,1) // Pointer to abstract pad iterator |
48 | }; |
49 | |
50 | #endif // ALI_MP_PAD_ITERATOR_PTR_H |