1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpExMap.h,v 1.4 2006/05/24 13:58:07 ivana Exp $
9 /// \brief Helper class making Root persistent TExMap
11 /// The objects and keys from TExMap are store in additional
12 /// arrays which are Root persistent.
14 /// \author Ivana Hrivnacova; IPN Orsay
16 #ifndef ALI_MP_EX_MAP_H
17 #define ALI_MP_EX_MAP_H
20 #include <TObjArray.h>
28 class AliMpExMap : public TObject
32 AliMpExMap(Bool_t standardConstructor);
33 AliMpExMap(const AliMpExMap& rhs);
34 AliMpExMap& operator=(const AliMpExMap& rhs);
35 virtual ~AliMpExMap();
38 // conversion between varius keys and Long_t
40 static Long_t GetIndex(const AliMpIntPair& pair);
41 static Long_t GetIndex(const TString& s);
42 static AliMpIntPair GetPair(Long_t index);
43 static TString GetString(Long_t index);
46 void Add(const AliMpIntPair& key, TObject* object);
47 void Add(const TString& key, TObject* object);
48 void Add(Int_t key, TObject* object);
50 void SetSize(Int_t size);
51 void SetOwner(Bool_t owner);
54 Int_t GetSize() const;
55 TExMapIter GetIterator() const;
56 TObject* GetObject(Int_t index) const;
57 TObject* GetObjectFast(Int_t index) const;
59 TObject* GetValue(const AliMpIntPair& key) const;
60 TObject* GetValue(const TString& key) const;
61 TObject* GetValue(Int_t key) const;
63 void Copy(TObject& dest) const;
68 void AddKey(Long_t key);
70 // static data members
71 static const Int_t fgkDefaultSize; ///< Default initial size
72 static const Bool_t fgkDefaultOwnership; ///< Default ownership
74 static const Int_t fgkSeparator1; ///< \brief the separator used for conversion
75 /// of AliMpIntPair to Int_t
76 static const Int_t fgkSeparator2; ///< \brief the separator used for conversion
77 /// of TString to Int_t
78 static const TString fgkCharacterMap; ///< \brief the string mapping characters
82 mutable TExMap fMap; //!< Transient map class
83 TObjArray fObjects; ///< Array of objects
84 TArrayL fKeys; ///< Array of keys
86 ClassDef(AliMpExMap,1) // Root persistent TExMap
89 #endif //ALI_MP_EX_MAP_H