table.h
上传用户:ladybrid91
上传日期:2007-01-04
资源大小:287k
文件大小:1k
源码类别:

Web服务器

开发平台:

Unix_Linux

  1. /*
  2. ** table.h
  3. **
  4. ** Copyright (c) 1995 Peter Eriksson <pen@signum.se>
  5. **
  6. ** This program is free software; you can redistribute it and/or modify
  7. ** it under the terms of the GNU General Public License as published by
  8. ** the Free Software Foundation; either version 2 of the License, or
  9. ** (at your option) any later version.
  10. **
  11. ** This program is distributed in the hope that it will be useful,
  12. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. ** GNU General Public License for more details.
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software
  17. ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. */
  19. #ifndef __TABLE_H__
  20. #define __TABLE_H__
  21. #include <synch.h>
  22. struct table
  23. {
  24.     char *name;
  25.     int size;
  26.     int length;
  27.     void **value;
  28.     mutex_t lock;
  29. };
  30. extern struct table *tbl_create(int size_hint);
  31. extern void tbl_free(struct table *tp,
  32.      void (*val_free)(void *val));
  33. extern int tbl_insert(struct table *tp, int pos, void *value);
  34. extern int tbl_delete(struct table *tp, int pos);
  35. extern int tbl_prepend(struct table *tp, void *value);
  36. extern int tbl_append(struct table *tp, void *value);
  37. extern int tbl_foreach(struct table *tp,
  38.        int (*fcnp)(void *value, void *misc),
  39.        void *misc);
  40. #endif