ksession.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. typedef struct ksession_s ksession_t;
  10. C_DECL_BEGIN
  11. ksession_t *ksession_new(kscheme_t *scheme, const char *starting_entry);
  12. void ksession_free(ksession_t *session);
  13. kscheme_t *ksession_scheme(const ksession_t *session);
  14. kpath_t *ksession_path(const ksession_t *session);
  15. // Done
  16. bool_t ksession_done(const ksession_t *session);
  17. bool_t ksession_set_done(ksession_t *session, bool_t done);
  18. // Width of pseudo terminal
  19. size_t ksession_term_width(const ksession_t *session);
  20. bool_t ksession_set_term_width(ksession_t *session, size_t term_width);
  21. // Height of pseudo terminal
  22. size_t ksession_term_height(const ksession_t *session);
  23. bool_t ksession_set_term_height(ksession_t *session, size_t term_height);
  24. // PID of server's service process
  25. pid_t ksession_spid(const ksession_t *session);
  26. bool_t ksession_set_spid(ksession_t *session, pid_t spid);
  27. // PID of client (Unix socket peer)
  28. pid_t ksession_pid(const ksession_t *session);
  29. bool_t ksession_set_pid(ksession_t *session, pid_t pid);
  30. // UID of client (Unix socket peer)
  31. uid_t ksession_uid(const ksession_t *session);
  32. bool_t ksession_set_uid(ksession_t *session, uid_t uid);
  33. // Client user name (Unix socket peer)
  34. const char *ksession_user(const ksession_t *session);
  35. bool_t ksession_set_user(ksession_t *session, const char *user);
  36. // Client isatty
  37. bool_t ksession_isatty_stdin(const ksession_t *session);
  38. bool_t ksession_set_isatty_stdin(ksession_t *session, bool_t isatty_stdin);
  39. bool_t ksession_isatty_stdout(const ksession_t *session);
  40. bool_t ksession_set_isatty_stdout(ksession_t *session, bool_t isatty_stdout);
  41. bool_t ksession_isatty_stderr(const ksession_t *session);
  42. bool_t ksession_set_isatty_stderr(ksession_t *session, bool_t isatty_stderr);
  43. C_DECL_END
  44. #endif // _klish_ksession_h