conf.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * conf.h
  3. */
  4. /**
  5. \ingroup clish
  6. \defgroup clish_conf config
  7. @{
  8. \brief This class is a config in memory container.
  9. Use it to implement config in memory.
  10. */
  11. #ifndef _cliconf_h
  12. #define _cliconf_h
  13. #include <stdio.h>
  14. #include "lub/types.h"
  15. #include "lub/bintree.h"
  16. typedef struct cliconf_s cliconf_t;
  17. /*=====================================
  18. * CONF INTERFACE
  19. *===================================== */
  20. /*-----------------
  21. * meta functions
  22. *----------------- */
  23. cliconf_t *cliconf_new(const char * line, unsigned short priority);
  24. int cliconf_bt_compare(const void *clientnode, const void *clientkey);
  25. void cliconf_bt_getkey(const void *clientnode, lub_bintree_key_t * key);
  26. size_t cliconf_bt_offset(void);
  27. /*-----------------
  28. * methods
  29. *----------------- */
  30. void cliconf_delete(cliconf_t * instance);
  31. void cliconf_fprintf(cliconf_t * instance, FILE * stream,
  32. const char *pattern,
  33. int depth, unsigned char prev_pri_hi);
  34. cliconf_t *cliconf_new_conf(cliconf_t * instance,
  35. const char *line, unsigned short priority);
  36. cliconf_t *cliconf_find_conf(cliconf_t * instance,
  37. const char *line, unsigned short priority);
  38. void cliconf_del_pattern(cliconf_t *this,
  39. const char *pattern);
  40. /*-----------------
  41. * attributes
  42. *----------------- */
  43. unsigned cliconf__get_depth(const cliconf_t * instance);
  44. unsigned short cliconf__get_priority(const cliconf_t * instance);
  45. unsigned char cliconf__get_priority_hi(const cliconf_t * instance);
  46. unsigned char cliconf__get_priority_lo(const cliconf_t * instance);
  47. bool_t cliconf__get_splitter(const cliconf_t * instance);
  48. void cliconf__set_splitter(cliconf_t *instance, bool_t splitter);
  49. #endif /* _cliconf_h */
  50. /** @} clish_conf */