## modules/up/src/gnug++/int.int.Map.h

/* [<][>][^][v][top][bottom][index][help] */

## FUNCTIONS

This source file includes following functions.

1. intintMap
2. intintMap
3. length
4. empty
5. dflt
6. intintMap

       1 // This may look like C code, but it is really -*- C++ -*-
       2 /*
       3 Copyright (C) 1988 Free Software Foundation
       4     written by Doug Lea (dl@rocky.oswego.edu)
       5
       6 This file is part of the GNU C++ Library.  This library is free
       7 software; you can redistribute it and/or modify it under the terms of
       8 the GNU Library General Public License as published by the Free
       9 Software Foundation; either version 2 of the License, or (at your
      10 option) any later version.  This library is distributed in the hope
      11 that it will be useful, but WITHOUT ANY WARRANTY; without even the
      12 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
      13 PURPOSE.  See the GNU Library General Public License for more details.
      14 You should have received a copy of the GNU Library General Public
      15 License along with this library; if not, write to the Free Software
      16 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
      17 */
      18
      19
      20 #ifndef _intintMap_h
      21 #ifdef __GNUG__
      22 #pragma interface
      23 #endif
      24 #define _intintMap_h 1
      25
      26 #include "Pix.h"
      27 #include "int.defs.h"
      28
      29 class intintMap
         /* [<][>][^][v][top][bottom][index][help] */
      30 {
      31 protected:
      32   int                   count;
      33   int                   def;
      34
      35 public:
      36                         intintMap(int  dflt);
      37   virtual              ~intintMap();
      38
      39   int                   length() const; // current number of items
      40   int                   empty() const;
      41
      42   virtual int           contains(int  key);      // is key mapped?
      43
      44   virtual void          clear();                 // delete all items
      45
      46   virtual int&          operator [] (int  key) = 0; // access contents by key
      47
      48   virtual void          del(int  key) = 0;       // delete entry
      49
      50   virtual Pix           first() = 0;             // Pix of first item or 0
      51   virtual void          next(Pix& i) = 0;        // advance to next or 0
      52   virtual int&          key(Pix i) = 0;          // access key at i
      53   virtual int&          contents(Pix i) = 0;     // access contents at i
      54
      55   virtual int           owns(Pix i);             // is i a valid Pix  ?
      56   virtual Pix           seek(int  key);          // Pix of key
      57
      58   int&                  dflt();                  // access default val
      59
      60   void                  error(const char* msg);
      61   virtual int           OK() = 0;                // rep invariant
      62 };
      63
      64
      65 inline intintMap::~intintMap() {}
         /* [<][>][^][v][top][bottom][index][help] */
      66
      67 inline int intintMap::length() const
         /* [<][>][^][v][top][bottom][index][help] */
      68 {
      69   return count;
      70 }
      71
      72 inline int intintMap::empty() const
         /* [<][>][^][v][top][bottom][index][help] */
      73 {
      74   return count == 0;
      75 }
      76
      77 inline int& intintMap::dflt()
         /* [<][>][^][v][top][bottom][index][help] */
      78 {
      79   return def;
      80 }
      81
      82 inline intintMap::intintMap(int  dflt) :def(dflt)
         /* [<][>][^][v][top][bottom][index][help] */
      83 {
      84   count = 0;
      85 }
      86
      87 #endif

/* [<][>][^][v][top][bottom][index][help] */