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.
21 /* Map die Adressen auf Adressen abbildet. Der Vergleich und das
22 * Hashen findet über die Adresse statt. */
24 typedef struct pmap pmap;
26 typedef struct pmap_entry {
32 /* Erzeugt eine neue leere Map. */
33 pmap * pmap_create(void);
35 /* Löscht eine Map. */
36 void pmap_destroy(pmap *);
38 /* Fügt ein Paar (key,value) in die Map ein. Gibt es bereits einen
39 * Eintrag mit "key" in er Map, so wird der entsprechende "value"
41 void pmap_insert(pmap *, void * key, void * value);
43 /* Prüft ob ein Eintrag zu "key" exisitiert. */
44 bool pmap_contains(pmap *, void * key);
46 /* Gibt den Eintrag zu "key" zurück. */
47 pmap_entry * pmap_find(pmap *, void * key);
49 /* Gibt für den Eintrag zu "key" den "value" zurück. */
50 void * pmap_get(pmap *, void * key);
52 /* Mit den Funktionen "pmap_first" und "pmap_next" kann man durch die
53 * Map iterieren. Die Funktionen geben einen Zeiger auf einen Eintrag
54 * zurück (key,value). Die Funktionen geben "NULL" zurück, wenn kein
55 * weiterer Eintrag existiert. */
56 pmap_entry * pmap_first(pmap *);
57 pmap_entry * pmap_next(pmap *);