/xbmc/visualizations/Goom/goom2k4-0/src/goomsl_hash.h

http://github.com/xbmc/xbmc · C++ Header · 40 lines · 30 code · 10 blank · 0 comment · 0 complexity · a9c6bf0ad095a7996c93545bd7fe5fb2 MD5 · raw file

  1. #ifndef _GOOMSL_HASH_H
  2. #define _GOOMSL_HASH_H
  3. typedef struct GOOM_HASH_ENTRY GoomHashEntry;
  4. typedef struct GOOM_HASH GoomHash;
  5. typedef union {
  6. void *ptr;
  7. int i;
  8. float f;
  9. } HashValue;
  10. struct GOOM_HASH_ENTRY {
  11. char *key;
  12. HashValue value;
  13. GoomHashEntry *lower;
  14. GoomHashEntry *upper;
  15. };
  16. struct GOOM_HASH {
  17. GoomHashEntry *root;
  18. int number_of_puts;
  19. };
  20. GoomHash *goom_hash_new();
  21. void goom_hash_free(GoomHash *gh);
  22. void goom_hash_put(GoomHash *gh, const char *key, HashValue value);
  23. HashValue *goom_hash_get(GoomHash *gh, const char *key);
  24. void goom_hash_put_int (GoomHash *_this, const char *key, int i);
  25. void goom_hash_put_float(GoomHash *_this, const char *key, float f);
  26. void goom_hash_put_ptr (GoomHash *_this, const char *key, void *ptr);
  27. typedef void (*GH_Func)(GoomHash *caller, const char *key, HashValue *value);
  28. void goom_hash_for_each(GoomHash *_this, GH_Func func);
  29. int goom_hash_number_of_puts(GoomHash *_this);
  30. #endif /* _GOOM_HASH_H */