/* associative.h: * **************************************************************** * Copyright (C) 2003 Tom Lord * * See the file "COPYING" for further information about * the copyright and warranty status of this work. */ #ifndef INCLUDE__FILE_UTILS__ASSOCIATIVE_H #define INCLUDE__FILE_UTILS__ASSOCIATIVE_H #include "hackerlab/machine/types.h" #include "libawk/relational.h" /* definitions for string->pointer hash tables */ extern struct hashtree_rules pointer_map_rules; typedef struct pointer_map_incomplete_type * pointer_map; extern void pointer_map_insert (pointer_map * vtable, t_uchar const * key, void * value, void (*free_callback) (void *)); extern void * pointer_map_find (pointer_map vtable, t_uchar const * key); extern void pointer_map_remove (pointer_map vtable, t_uchar const * key, void (*free_callback) (void *)); extern void pointer_map_free (pointer_map table, void (*callback) (void *)); //extern rel_table assoc_intersection(pointer_map left, pointer_map right); typedef struct assoc_table_incomplete_type * assoc_table; /* automatically generated __STDC__ prototypes */ extern void assoc_set (assoc_table * vtable, t_uchar const * key, t_uchar const * value); extern t_uchar * assoc_ref (assoc_table vtable, t_uchar const * key); extern void assoc_del (assoc_table vtable, t_uchar * key); extern void free_assoc_table (assoc_table table); extern rel_table assoc_intersection(assoc_table left, assoc_table right); #endif /* INCLUDE__FILE_UTILS__ASSOCIATIVE_H */ /* tag: Tom Lord Sat Jan 5 15:26:10 2002 (associative.h) */