hslot.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * Presence Agent, hash table
  3. *
  4. * $Id$
  5. *
  6. * Copyright (C) 2001-2003 FhG Fokus
  7. *
  8. * This file is part of ser, a free SIP server.
  9. *
  10. * ser is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 2 of the License, or
  13. * (at your option) any later version
  14. *
  15. * For a license to use the ser software under conditions
  16. * other than those described here, or to purchase support for this
  17. * software, please contact iptel.org by e-mail at the following addresses:
  18. * [email protected]
  19. *
  20. * ser is distributed in the hope that it will be useful,
  21. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  22. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  23. * GNU General Public License for more details.
  24. *
  25. * You should have received a copy of the GNU General Public License
  26. * along with this program; if not, write to the Free Software
  27. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  28. */
  29. #ifndef HSLOT_H
  30. #define HSLOT_H
  31. #include "presentity.h"
  32. #include "pdomain.h"
  33. struct presentity;
  34. struct pdomain;
  35. typedef struct hslot {
  36. int n; /* Number of elements in the collision slot */
  37. struct presentity* first; /* First element in the list */
  38. struct pdomain* d; /* Domain we belong to */
  39. } hslot_t;
  40. /*
  41. * Initialize slot structure
  42. */
  43. void init_slot(struct pdomain* _d, hslot_t* _s);
  44. /*
  45. * Deinitialize given slot structure
  46. */
  47. void deinit_slot(hslot_t* _s);
  48. /*
  49. * Add an element to slot linked list
  50. */
  51. void slot_add(hslot_t* _s, struct presentity* _p, struct presentity** _f, struct presentity** _l);
  52. /*
  53. * Remove an element from slot linked list
  54. */
  55. void slot_rem(hslot_t* _s, struct presentity* _p, struct presentity** _f, struct presentity** _l);
  56. #endif /* HSLOT_H */