home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gettext-0.10.24-src.tgz / tar.out / fsf / gettext / lib / hash.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  47 lines

  1. /* Copyright (C) 1995 Free Software Foundation, Inc.
  2.  
  3. The GNU C Library is free software; you can redistribute it and/or
  4. modify it under the terms of the GNU Library General Public License as
  5. published by the Free Software Foundation; either version 2 of the
  6. License, or (at your option) any later version.
  7.  
  8. The GNU C Library is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11. Library General Public License for more details.
  12.  
  13. You should have received a copy of the GNU Library General Public
  14. License along with the GNU C Library; see the file COPYING.LIB.  If
  15. not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  16. Boston, MA 02111-1307, USA.  */
  17.  
  18. #ifndef _HASH_H
  19. #define _HASH_H
  20.  
  21. #include <obstack.h>
  22.  
  23. typedef struct hash_table
  24. {
  25.   unsigned long size;
  26.   unsigned long filled;
  27.   void *first;
  28.   void *table;
  29.   struct obstack mem_pool;
  30. }
  31. hash_table;
  32.  
  33.  
  34. int init_hash PARAMS ((hash_table *htab, unsigned long init_size));
  35. int delete_hash PARAMS ((hash_table *htab));
  36. int insert_entry PARAMS ((hash_table *htab, const char *key, size_t keylen,
  37.               void *data));
  38. int find_entry PARAMS ((hash_table *htab, const char *key, size_t keylen,
  39.             void **result));
  40.  
  41. int iterate_table PARAMS ((hash_table *htab, void **ptr,
  42.                const void **key, void **data));
  43.  
  44. unsigned long next_prime PARAMS ((unsigned long seed));
  45.  
  46. #endif /* hash.h */
  47.