ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup core
/// \class AliMUONStringIntMap
/// \brief Substitutes map <string, int> which ALICE does not allow to use 
///
/// \author Ivana Hrivnacova, IPN Orsay

#ifndef ALI_MUON_STRING_INT_MAP_H
#define ALI_MUON_STRING_INT_MAP_H

#include <TObject.h>
#include <TObjArray.h>
#include <TArrayI.h>

using std::ofstream;

class AliMUONStringIntMap : public TObject
{
  public:
    AliMUONStringIntMap();
    virtual ~AliMUONStringIntMap();
    
    // methods
    Bool_t  Add(const TString& first, Int_t second);
    Bool_t  Set(const TString& first, Int_t second);
    Int_t Contains(const TString& first) const;
    
    Int_t   Get(const TString& first) const;
    Int_t   GetNofItems() const;
    virtual void Clear(Option_t* /*option*/ ="");
    virtual void Print(const char* /*option*/ = "") const;
    void Print(const TString& key, ofstream& out) const;

    // Methods for iterating over all elements    
    Bool_t  Next(TString& first, Int_t& second);
    void    ResetItr();

  protected:
    /// Not implemented
    AliMUONStringIntMap(const AliMUONStringIntMap& rhs);
    /// Not implemented
    AliMUONStringIntMap& operator = (const AliMUONStringIntMap& rhs);
 
  private:
    // data members
    Int_t      fNofItems;    ///< number of items
    TObjArray  fFirstArray;  ///< first item array
    TArrayI    fSecondArray; ///< second item array
    Int_t      fCurrentIndex;///< current index

  ClassDef(AliMUONStringIntMap,2)  // motif map
};    

#endif //ALI_MUON_STRING_INT_MAP_H
 AliMUONStringIntMap.h:1
 AliMUONStringIntMap.h:2
 AliMUONStringIntMap.h:3
 AliMUONStringIntMap.h:4
 AliMUONStringIntMap.h:5
 AliMUONStringIntMap.h:6
 AliMUONStringIntMap.h:7
 AliMUONStringIntMap.h:8
 AliMUONStringIntMap.h:9
 AliMUONStringIntMap.h:10
 AliMUONStringIntMap.h:11
 AliMUONStringIntMap.h:12
 AliMUONStringIntMap.h:13
 AliMUONStringIntMap.h:14
 AliMUONStringIntMap.h:15
 AliMUONStringIntMap.h:16
 AliMUONStringIntMap.h:17
 AliMUONStringIntMap.h:18
 AliMUONStringIntMap.h:19
 AliMUONStringIntMap.h:20
 AliMUONStringIntMap.h:21
 AliMUONStringIntMap.h:22
 AliMUONStringIntMap.h:23
 AliMUONStringIntMap.h:24
 AliMUONStringIntMap.h:25
 AliMUONStringIntMap.h:26
 AliMUONStringIntMap.h:27
 AliMUONStringIntMap.h:28
 AliMUONStringIntMap.h:29
 AliMUONStringIntMap.h:30
 AliMUONStringIntMap.h:31
 AliMUONStringIntMap.h:32
 AliMUONStringIntMap.h:33
 AliMUONStringIntMap.h:34
 AliMUONStringIntMap.h:35
 AliMUONStringIntMap.h:36
 AliMUONStringIntMap.h:37
 AliMUONStringIntMap.h:38
 AliMUONStringIntMap.h:39
 AliMUONStringIntMap.h:40
 AliMUONStringIntMap.h:41
 AliMUONStringIntMap.h:42
 AliMUONStringIntMap.h:43
 AliMUONStringIntMap.h:44
 AliMUONStringIntMap.h:45
 AliMUONStringIntMap.h:46
 AliMUONStringIntMap.h:47
 AliMUONStringIntMap.h:48
 AliMUONStringIntMap.h:49
 AliMUONStringIntMap.h:50
 AliMUONStringIntMap.h:51
 AliMUONStringIntMap.h:52
 AliMUONStringIntMap.h:53
 AliMUONStringIntMap.h:54
 AliMUONStringIntMap.h:55
 AliMUONStringIntMap.h:56
 AliMUONStringIntMap.h:57
 AliMUONStringIntMap.h:58