modules/up/src/gnug++/unsigned.Set.h
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- unsignedSet
- unsignedSet
- length
- empty
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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19
20 #ifndef _unsignedSet_h
21 #ifdef __GNUG__
22 #pragma interface
23 #endif
24 #define _unsignedSet_h 1
25
26 #include "Pix.h"
27 #include "unsigned.defs.h"
28
29 class unsignedSet
/* [<][>][^][v][top][bottom][index][help] */
30 {
31 protected:
32
33 int count;
34
35 public:
36 inline virtual ~unsignedSet();
37
38 int length(); // current number of items
39 int empty();
40
41 virtual Pix add(unsigned item) = 0; // add item; return Pix
42 virtual void del(unsigned item) = 0; // delete item
43 virtual int contains(unsigned item); // is item in set?
44
45 virtual void clear(); // delete all items
46
47 virtual Pix first() const = 0; // Pix of first item or 0
48 virtual void next(Pix& i) const = 0; // advance to next or 0
49 virtual const unsigned& operator () (Pix i) const = 0; // access item at i
50
51 virtual int owns(Pix i); // is i a valid Pix ?
52 virtual Pix seek(unsigned item); // Pix of item
53
54 void operator |= (unsignedSet& b); // add all items in b
55 void operator -= (unsignedSet& b); // delete items also in b
56 void operator &= (unsignedSet& b); // delete items not in b
57
58 int operator == (unsignedSet& b);
59 int operator != (unsignedSet& b);
60 int operator <= (unsignedSet& b);
61
62 void error(const char* msg);
63 virtual int OK() = 0; // rep invariant
64 };
65
66 inline unsignedSet::~unsignedSet() {}
/* [<][>][^][v][top][bottom][index][help] */
67
68 inline int unsignedSet::length()
/* [<][>][^][v][top][bottom][index][help] */
69 {
70 return count;
71 }
72
73 inline int unsignedSet::empty()
/* [<][>][^][v][top][bottom][index][help] */
74 {
75 return count == 0;
76 }
77
78 #endif