ksession.h 779 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /** @file ksession.h
  2. *
  3. * @brief Klish session
  4. */
  5. #ifndef _klish_ksession_h
  6. #define _klish_ksession_h
  7. #include <klish/kscheme.h>
  8. #include <klish/kpath.h>
  9. #define KSESSION_STARTING_ENTRY "main"
  10. typedef struct ksession_s ksession_t;
  11. typedef enum {
  12. KPARSE_NONE,
  13. KPARSE_OK,
  14. KPARSE_INPROGRESS,
  15. KPARSE_NOTFOUND,
  16. KPARSE_INCOMPLETED,
  17. KPARSE_ILLEGAL,
  18. KPARSE_ERROR,
  19. } kparse_status_e;
  20. C_DECL_BEGIN
  21. ksession_t *ksession_new(const kscheme_t *scheme, const char *start_entry);
  22. void ksession_free(ksession_t *session);
  23. const kscheme_t *ksession_scheme(const ksession_t *session);
  24. kpath_t *ksession_path(const ksession_t *session);
  25. kparse_status_e ksession_parse_line(ksession_t *session, const char *line,
  26. kpargv_t **parsed_argv);
  27. C_DECL_END
  28. #endif // _klish_ksession_h