]> Git Repo - binutils.git/blob - gprofng/src/Map2D.h
Automatic date update in version.in
[binutils.git] / gprofng / src / Map2D.h
1 /* Copyright (C) 2021 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
This page took 0.038221 seconds and 4 git commands to generate.