(root)/
binutils-2.41/
gprofng/
src/
Map2D.h
       1  /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
       2     Contributed by Oracle.
       3  
       4     This file is part of GNU Binutils.
       5  
       6     This program is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3, or (at your option)
       9     any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; if not, write to the Free Software
      18     Foundation, 51 Franklin Street - Fifth Floor, Boston,
      19     MA 02110-1301, USA.  */
      20  
      21  #ifndef _DBE_MAP2D_H
      22  #define _DBE_MAP2D_H
      23  
      24  template <typename Key1_t, typename Key2_t, typename Value_t>
      25  class Map2D
      26  {
      27  public:
      28  
      29    enum MapType
      30    {
      31      Default,
      32      Interval
      33    };
      34  
      35    // Relation for the first key is always EQUAL
      36    enum Relation
      37    {
      38      REL_EQLT,
      39      REL_EQLE,
      40      REL_EQEQ,
      41      REL_EQGE,
      42      REL_EQGT
      43    };
      44  
      45    virtual ~Map2D () { };
      46    virtual void put (Key1_t key1, Key2_t key2, Value_t val) = 0;
      47    virtual Value_t get (Key1_t key1, Key2_t key2) = 0;
      48    virtual Value_t get (Key1_t key1, Key2_t key2, Relation rel) = 0;
      49    virtual Value_t remove (Key1_t key1, Key2_t key2) = 0;
      50  
      51  };
      52  
      53  #endif