1 /* -------------------------------------------------------------------
3 * -------------------------------------------------------------------
4 * Datentyp: Vereinfachte Map (hash-map) zum Speichern von
5 * Zeigern/Adressen -> Zeigern/Adressen.
7 * Erstellt: Hubert Schmid, 09.06.2002
8 * ---------------------------------------------------------------- */
18 /* Map die Adressen auf Adressen abbildet. Der Vergleich und das
19 * Hashen findet über die Adresse statt. */
21 typedef struct pmap pmap;
23 typedef struct pmap_entry {
29 /* Erzeugt eine neue leere Map. */
30 pmap * pmap_create(void);
32 /* Löscht eine Map. */
33 void pmap_destroy(pmap *);
35 /* Fügt ein Paar (key,value) in die Map ein. Gibt es bereits einen
36 * Eintrag mit "key" in er Map, so wird der entsprechende "value"
38 void pmap_insert(pmap *, void * key, void * value);
40 /* Prüft ob ein Eintrag zu "key" exisitiert. */
41 bool pmap_contains(pmap *, void * key);
43 /* Gibt den Eintrag zu "key" zurück. */
44 pmap_entry * pmap_find(pmap *, void * key);
46 /* Gibt für den Eintrag zu "key" den "value" zurück. */
47 void * pmap_get(pmap *, void * key);
49 /* Mit den Funktionen "pmap_first" und "pmap_next" kann man durch die
50 * Map iterieren. Die Funktionen geben einen Zeiger auf einen Eintrag
51 * zurück (key,value). Die Funktionen geben "NULL" zurück, wenn kein
52 * weiterer Eintrag existiert. */
53 pmap_entry * pmap_first(pmap *);
54 pmap_entry * pmap_next(pmap *);