LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSIntMap.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 3 33.3 %
Date: 2016-06-14 17:26:59 Functions: 1 3 33.3 %

          Line data    Source code
       1             : #ifndef ALIITSINTMAP_H
       2             : #define ALIITSINTMAP_H
       3             : 
       4             : //////////////////////////////////////////////////////////////////////
       5             : // Author: Henrik Tydesjo                                           //
       6             : // This class implements the use of a map of integers.              //
       7             : //                                                                  //
       8             : //////////////////////////////////////////////////////////////////////  
       9             : 
      10             : #include <Rtypes.h>
      11             : 
      12             : class AliITSIntMapNode;
      13             : 
      14             : class AliITSIntMap {
      15             : 
      16             :  public:
      17             :   AliITSIntMap();
      18             :   AliITSIntMap(AliITSIntMapNode* root, UInt_t nrEntries);
      19             :   AliITSIntMap(const AliITSIntMap& imap);
      20             :   virtual ~AliITSIntMap();
      21             :   AliITSIntMap& operator=(const AliITSIntMap& imap);
      22             : 
      23             :   void               Clear();
      24             :   AliITSIntMap*      Clone() const;
      25             :   Bool_t             Insert(Int_t key, Int_t val);
      26             :   Bool_t             Remove(Int_t key);
      27             :   Bool_t             Pop(Int_t& key, Int_t& val);
      28             :   AliITSIntMapNode*  Find(Int_t key) const;
      29             :   Int_t              GetVal(Int_t key) const;
      30             : 
      31        1920 :   UInt_t             GetNrEntries() const {return fNrEntries;}
      32             :   Int_t              GetKeyIndex(UInt_t index);
      33             :   Int_t              GetValIndex(UInt_t index);
      34             : 
      35             :   void               PrintEntries() const;
      36             :   void               Balance();
      37           0 :   void               PrepareSerialize() {InitFastAccessSerialize();}
      38           0 :   void               PrepareSerializeOrdered() {InitFastAccess();}
      39             :   UInt_t             GetTreeHeight() const;
      40             : 
      41             :  private:
      42             :   UInt_t             fNrEntries;          // nr of entries in map
      43             :   AliITSIntMapNode*  fRoot;               // link to first node of tree
      44             :   Bool_t             fFastAccess;         // is fast access array initialized (key ordered)?
      45             :   Bool_t             fFastAccessSerialize;// is fast access array initialized (tree ordered)?
      46             :   AliITSIntMapNode** fFastAccessArray;    // array of pointers to nodes
      47             :   UInt_t             fDummyIndex;         // dummy index used when traversing tree
      48             : 
      49             :   void               ClearNode(AliITSIntMapNode* &node); // delete this node and all below
      50             :   AliITSIntMapNode*  CloneNode(AliITSIntMapNode* node) const;
      51             :   void               InsertNode(Int_t key, Int_t val, AliITSIntMapNode* &node, UInt_t height);
      52             :   void               RemoveNode(Int_t key, AliITSIntMapNode* &node);
      53             :   AliITSIntMapNode*  FindNode(Int_t key, AliITSIntMapNode* node, UInt_t height) const;
      54             :   AliITSIntMapNode*  FindNodeIndex(UInt_t index, AliITSIntMapNode* node) const;
      55             :   AliITSIntMapNode*  FindMinNode(AliITSIntMapNode* node) const;
      56             :   AliITSIntMapNode*  FindMaxNode(AliITSIntMapNode* node) const;
      57             :   void               PrintNode(AliITSIntMapNode* node) const;
      58             :   UInt_t             GetTreeHeightNode(AliITSIntMapNode* node) const;
      59             : 
      60             :   AliITSIntMapNode*  BalanceNode(Int_t lowInd, Int_t highInd);
      61             :   void               ClearFastAccess();
      62             :   void               InitFastAccess();
      63             :   void               InitFastAccessNode(AliITSIntMapNode* node);
      64             :   void               InitFastAccessSerialize();
      65             :   void               InitFastAccessSerializeNode(AliITSIntMapNode* node);
      66             : 
      67             : };
      68             : 
      69             : #endif

Generated by: LCOV version 1.11