LCOV - code coverage report
Current view: top level - MUON/MUONcore - AliMpExMap.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 2 5 40.0 %

          Line data    Source code
       1             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       2             :  * See cxx source for full Copyright notice                               */
       3             : 
       4             : // $Id$
       5             : // $MpId: AliMpExMap.h,v 1.4 2006/05/24 13:58:07 ivana Exp $
       6             : 
       7             : /// \ingroup core
       8             : /// \class AliMpExMap
       9             : /// \brief Helper class making Root persistent TExMap
      10             : ///
      11             : /// The objects and keys from TExMap are store in additional
      12             : /// arrays which are Root persistent.
      13             : ///
      14             : /// \author Ivana Hrivnacova; IPN Orsay
      15             : 
      16             : #ifndef ALI_MP_EX_MAP_H
      17             : #define ALI_MP_EX_MAP_H
      18             : 
      19             : #include <TObject.h>
      20             : #include <TObjArray.h>
      21             : #include <TArrayL.h>
      22             : #include <TExMap.h>
      23             : 
      24             : class AliMpExMapIterator;
      25             : 
      26             : class TString;
      27             : 
      28             : class AliMpExMap : public TObject
      29             : {
      30             :   friend class AliMpExMapIterator;
      31             :   
      32             :   public:
      33             :     AliMpExMap();
      34             :     AliMpExMap(TRootIOCtor* /*ioCtor*/);
      35             :     AliMpExMap(const AliMpExMap& rhs);
      36             :     AliMpExMap& operator=(const AliMpExMap& rhs);
      37             :     virtual ~AliMpExMap();
      38             :     
      39             :     
      40             :     // static methods
      41             :     // conversion between String and Long_t
      42             :     static Long_t  GetIndex(const TString& s);
      43             :     static TString GetString(Long_t index);
      44             : 
      45             :     // methods from base class
      46             :     virtual void Clear(Option_t* opt="");
      47             :     virtual void Print(Option_t* opt="") const;
      48             : 
      49             :     // set methods
      50             :     void Add(Int_t keyFirst, Int_t keySecond, TObject* object);
      51             :     void Add(const TString& key, TObject* object);
      52             :     void Add(Int_t key, TObject* object);
      53             : 
      54             :     void SetSize(Int_t size);
      55             :     void SetOwner(Bool_t owner);
      56             :     
      57             :     // get methods
      58             :     Int_t GetSize() const;
      59             :     Int_t GetCapacity() const;
      60             :     
      61             :     TObject*    GetValue(Int_t keyFirst, Int_t keySecond) const;
      62             :     TObject*    GetValue(const TString& key) const;
      63             :     TObject*    GetValue(Int_t key) const;
      64             : 
      65             :     AliMpExMapIterator* CreateIterator() const;
      66             :     
      67             :   private:  
      68             :     // static methods
      69             :     static const TString&  GetCharacterMap();
      70             : 
      71             :     // methods
      72             : 
      73             :     // conversion between Int_t pair key and Long_t
      74             :     static Long_t  GetIndex(Int_t first, Int_t second);
      75             :     static Int_t   GetPairFirst(Long_t index);
      76             :     static Int_t   GetPairSecond(Long_t index);
      77             : 
      78             :     void FillMap();
      79             :     void AddKey(Long_t key);
      80             :     void Copy(TObject& dest) const;
      81             :     
      82             :     // static data members
      83             :     static const Int_t    fgkDefaultSize;      ///< Default initial size
      84             :     static const Bool_t   fgkDefaultOwnership; ///< Default ownership
      85             : 
      86             :     static const Int_t    fgkSeparator1; ///< \brief the separator used for conversion
      87             :                                          ///  of Int_t pair to Int_t
      88             :     static const Int_t    fgkSeparator2; ///< \brief the separator used for conversion
      89             :                                          ///  of TString to Int_t
      90             :     
      91             :     // data members
      92             :     mutable TExMap  fMap;     //!<!  Transient map class
      93             :     TObjArray       fObjects; ///<  Array of objects 
      94             :     TArrayL         fKeys;    ///<  Array of keys 
      95             : 
      96        4314 :   ClassDef(AliMpExMap,1)  // Root persistent TExMap
      97             : };
      98             : 
      99             : #endif //ALI_MP_EX_MAP_H
     100             : 

Generated by: LCOV version 1.11