ini.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * ini.h
  3. */
  4. #ifndef _lub_ini_h
  5. #define _lub_ini_h
  6. #include "lub/c_decl.h"
  7. #include "lub/list.h"
  8. typedef struct lub_pair_s lub_pair_t;
  9. typedef struct lub_ini_s lub_ini_t;
  10. typedef lub_list_node_t lub_ini_node_t;
  11. _BEGIN_C_DECL
  12. /* Pair */
  13. int lub_pair_compare(const void *first, const void *second);
  14. void lub_pair_init(lub_pair_t *instance, const char *name, const char *value);
  15. lub_pair_t *lub_pair_new(const char *name, const char *value);
  16. void lub_pair_fini(lub_pair_t *instance);
  17. void lub_pair_free(lub_pair_t *instance);
  18. const char *lub_pair__get_name(const lub_pair_t *instance);
  19. void lub_pair__set_name(lub_pair_t *instance, const char *name);
  20. const char *lub_pair__get_value(const lub_pair_t *instance);
  21. void lub_pair__set_value(lub_pair_t *instance, const char *value);
  22. /* Ini */
  23. void lub_ini_init(lub_ini_t *instance);
  24. lub_ini_t *lub_ini_new(void);
  25. void lub_ini_fini(lub_ini_t *instance);
  26. void lub_ini_free(lub_ini_t *instance);
  27. lub_pair_t *lub_ini_find_pair(const lub_ini_t *instance, const char *name);
  28. const char *lub_ini_find(const lub_ini_t *instance, const char *name);
  29. void lub_ini_add(lub_ini_t *instance, lub_pair_t *pair);
  30. int lub_ini_parse_str(lub_ini_t *instance, const char *ini);
  31. int lub_ini_parse_file(lub_ini_t *instance, const char *fn);
  32. lub_ini_node_t *lub_ini__get_head(lub_ini_t *instance);
  33. lub_ini_node_t *lub_ini__get_tail(lub_ini_t *instance);
  34. lub_ini_node_t *lub_ini__get_next(lub_ini_node_t *node);
  35. lub_ini_node_t *lub_ini__get_prev(lub_ini_node_t *node);
  36. lub_pair_t *lub_ini__iter_data(lub_ini_node_t *node);
  37. _END_C_DECL
  38. #endif /* _lub_ini_h */