3 * File name: ir/adt/eset.c
4 * Purpose: Datentyp: Vereinfachte Map (hash-map) zum Speichern von
5 * Zeigern/Adressen -> Zeigern/Adressen.
6 * Author: Hubert Schmid
10 * Copyright: (c) 2002 Universität Karlsruhe
11 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
17 /* Map die Adressen auf Adressen abbildet. Der Vergleich und das
18 * Hashen findet über die Adresse statt. */
20 typedef struct pmap pmap;
22 typedef struct pmap_entry {
28 /* Erzeugt eine neue leere Map. */
29 pmap * pmap_create(void);
31 /* Löscht eine Map. */
32 void pmap_destroy(pmap *);
34 /* Fügt ein Paar (key,value) in die Map ein. Gibt es bereits einen
35 * Eintrag mit "key" in er Map, so wird der entsprechende "value"
37 void pmap_insert(pmap *, void * key, void * value);
39 /* Prüft ob ein Eintrag zu "key" exisitiert. */
40 int pmap_contains(pmap *, void * key);
42 /* Gibt den Eintrag zu "key" zurück. */
43 pmap_entry * pmap_find(pmap *, void * key);
45 /* Gibt für den Eintrag zu "key" den "value" zurück. */
46 void * pmap_get(pmap *, void * key);
48 /* Mit den Funktionen "pmap_first" und "pmap_next" kann man durch die
49 * Map iterieren. Die Funktionen geben einen Zeiger auf einen Eintrag
50 * zurück (key,value). Die Funktionen geben "NULL" zurück, wenn kein
51 * weiterer Eintrag existiert. */
52 pmap_entry * pmap_first(pmap *);
53 pmap_entry * pmap_next(pmap *);
55 void pmap_break(pmap *map);