source: trunk/src/emx/include/Attic/cpp/gen/Bag.ccP@ 18

Last change on this file since 18 was 18, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.7 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2/*
3Copyright (C) 1988 Free Software Foundation
4 written by Doug Lea ([email protected])
5
6This file is part of the GNU C++ Library. This library is free
7software; you can redistribute it and/or modify it under the terms of
8the GNU Library General Public License as published by the Free
9Software Foundation; either version 2 of the License, or (at your
10option) any later version. This library is distributed in the hope
11that it will be useful, but WITHOUT ANY WARRANTY; without even the
12implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13PURPOSE. See the GNU Library General Public License for more details.
14You should have received a copy of the GNU Library General Public
15License along with this library; if not, write to the Free Software
16Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17*/
18
19#ifdef __GNUG__
20#pragma implementation
21#endif
22#include <builtin.h>
23#include "<T>.Bag.h"
24
25// error handling
26
27void <T>Bag::error(const char* msg)
28{
29 (*lib_error_handler)("Bag", msg);
30}
31
32
33Pix <T>Bag::seek(<T&> item, Pix i)
34{
35 if (i == 0)
36 i = first();
37 else
38 next(i);
39 for (;i != 0 && (!(<T>EQ((*this)(i), item))); next(i));
40 return i;
41}
42
43int <T>Bag::owns(Pix p)
44{
45 if (p == 0) return 0;
46 for (Pix i = first(); i != 0; next(i)) if (i == p) return 1;
47 return 0;
48}
49
50void <T>Bag::remove(<T&> item)
51{
52 int i = nof(item);
53 while (i-- > 0) del(item);
54}
55
56
57int <T>Bag::nof(<T&> item)
58{
59 int n = 0;
60 for (Pix p = first(); p; next(p)) if (<T>EQ((*this)(p), item)) ++n;
61 return n;
62}
63
64void <T>Bag::clear()
65{
66 Pix i = first();
67 while (i != 0)
68 {
69 del((*this)(i));
70 i = first();
71 }
72}
73
74
Note: See TracBrowser for help on using the repository browser.