nspace.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * nspace.h
  3. */
  4. /**
  5. \ingroup clish
  6. \defgroup clish_nspace nspace
  7. @{
  8. \brief This class represents an instance of a namespace type.
  9. Namespace instances are assocated with a view to make view's commands available
  10. within current view.
  11. */
  12. #ifndef _clish_nspace_h
  13. #define _clish_nspace_h
  14. typedef struct clish_nspace_s clish_nspace_t;
  15. typedef enum {
  16. CLISH_NSPACE_NONE,
  17. CLISH_NSPACE_HELP,
  18. CLISH_NSPACE_COMPLETION,
  19. CLISH_NSPACE_CHELP
  20. } clish_nspace_visibility_t;
  21. #include <regex.h>
  22. #include "clish/view.h"
  23. /*=====================================
  24. * NSPACE INTERFACE
  25. *===================================== */
  26. /*-----------------
  27. * meta functions
  28. *----------------- */
  29. clish_nspace_t *clish_nspace_new(clish_view_t * view);
  30. /*-----------------
  31. * methods
  32. *----------------- */
  33. void clish_nspace_delete(clish_nspace_t * instance);
  34. const clish_command_t *clish_nspace_find_next_completion(clish_nspace_t *
  35. instance, const char *iter_cmd, const char *line,
  36. clish_nspace_visibility_t field);
  37. clish_command_t *clish_nspace_find_command(clish_nspace_t * instance, const char *name);
  38. void clish_nspace_dump(const clish_nspace_t * instance);
  39. clish_command_t * clish_nspace_create_prefix_cmd(clish_nspace_t * instance,
  40. const char * name, const char * help);
  41. void clish_nspace_clean_proxy(clish_nspace_t * instance);
  42. /*-----------------
  43. * attributes
  44. *----------------- */
  45. const char *clish_nspace__get_prefix(const clish_nspace_t * instance);
  46. const regex_t *clish_nspace__get_prefix_regex(const clish_nspace_t * instance);
  47. bool_t clish_nspace__get_help(const clish_nspace_t * instance);
  48. bool_t clish_nspace__get_completion(const clish_nspace_t * instance);
  49. bool_t clish_nspace__get_context_help(const clish_nspace_t * instance);
  50. bool_t clish_nspace__get_inherit(const clish_nspace_t * instance);
  51. bool_t
  52. clish_nspace__get_visibility(const clish_nspace_t * instance,
  53. clish_nspace_visibility_t field);
  54. clish_view_t *clish_nspace__get_view(const clish_nspace_t * instance);
  55. void clish_nspace__set_prefix(clish_nspace_t * instance, const char *prefix);
  56. void clish_nspace__set_help(clish_nspace_t * instance, bool_t help);
  57. void clish_nspace__set_completion(clish_nspace_t * instance, bool_t help);
  58. void clish_nspace__set_context_help(clish_nspace_t * instance, bool_t help);
  59. void clish_nspace__set_inherit(clish_nspace_t * instance, bool_t inherit);
  60. void clish_nspace__set_access(clish_nspace_t *instance, const char *access);
  61. char *clish_nspace__get_access(const clish_nspace_t *instance);
  62. #endif /* _clish_nspace_h */
  63. /** @} clish_nspace */