kpargv.h 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /** @file kpargv.h
  2. *
  3. * @brief Klish pargv
  4. */
  5. #ifndef _klish_kpargv_h
  6. #define _klish_kpargv_h
  7. #include <faux/list.h>
  8. #include <klish/kparam.h>
  9. #include <klish/kcommand.h>
  10. typedef struct kpargv_s kpargv_t;
  11. typedef struct kparg_s kparg_t;
  12. typedef faux_list_node_t kpargv_pargs_node_t;
  13. C_DECL_BEGIN
  14. // Parg
  15. kparg_t *kparg_new(kparam_t *param, const char *value);
  16. void kparg_free(kparg_t *parg);
  17. kparam_t *kparg_param(const kparg_t *parg);
  18. bool_t kparg_set_value(kparg_t *parg, const char *value);
  19. const char *kparg_value(const kparg_t *parg);
  20. // Pargv
  21. kpargv_t *kpargv_new();
  22. void kpargv_free(kpargv_t *pargv);
  23. kcommand_t *kpargv_command(const kpargv_t *pargv);
  24. bool_t kpargv_set_command(kpargv_t *pargv, kcommand_t *command);
  25. faux_list_t *kpargv_pargs(const kpargv_t *pargv);
  26. size_t kpargv_len(const kpargv_t *pargv);
  27. size_t kpargv_is_empty(const kpargv_t *pargv);
  28. bool_t kpargv_add(kpargv_t *pargv, kparg_t *parg);
  29. kparg_t *kpargv_last(const kpargv_t *pargv);
  30. C_DECL_END
  31. #endif // _klish_kpargv_h