ktp_session.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef _klish_ktp_session_h
  2. #define _klish_ktp_session_h
  3. #include <faux/faux.h>
  4. #include <faux/list.h>
  5. #include <klish/ksession.h>
  6. #define USOCK_PATH_MAX sizeof(((struct sockaddr_un *)0)->sun_path)
  7. #define KLISH_DEFAULT_UNIX_SOCKET_PATH "/tmp/klish-unix-socket"
  8. typedef struct ktpd_session_s ktpd_session_t;
  9. typedef struct ktp_session_s ktp_session_t;
  10. //typedef struct ktpd_clients_s ktpd_clients_t;
  11. typedef bool_t (*faux_session_stall_cb_fn)(ktpd_session_t *session,
  12. void *user_data);
  13. C_DECL_BEGIN
  14. // Client KTP session
  15. ktp_session_t *ktp_session_new(int sock);
  16. void ktp_session_free(ktp_session_t *session);
  17. bool_t ktp_session_connected(ktp_session_t *session);
  18. int ktp_session_fd(const ktp_session_t *session);
  19. // Server KTP session
  20. ktpd_session_t *ktpd_session_new(int sock, const kscheme_t *scheme,
  21. const char *start_entry);
  22. void ktpd_session_free(ktpd_session_t *session);
  23. bool_t ktpd_session_connected(ktpd_session_t *session);
  24. int ktpd_session_fd(const ktpd_session_t *session);
  25. bool_t ktpd_session_async_in(ktpd_session_t *session);
  26. bool_t ktpd_session_async_out(ktpd_session_t *session);
  27. void ktpd_session_set_stall_cb(ktpd_session_t *session,
  28. faux_session_stall_cb_fn stall_cb, void *user_data);
  29. /*
  30. // Server's KTP clients database
  31. ktpd_clients_t *ktpd_clients_new(void);
  32. void ktpd_clients_free(ktpd_clients_t *db);
  33. ktpd_session_t *ktpd_clients_find(const ktpd_clients_t *db, int fd);
  34. ktpd_session_t *ktpd_clients_add(ktpd_clients_t *db, int fd);
  35. int ktpd_clients_del(ktpd_clients_t *db, int fd);
  36. faux_list_node_t *ktpd_clients_init_iter(const ktpd_clients_t *db);
  37. ktpd_session_t *ktpd_clients_each(faux_list_node_t **iter);
  38. void ktpd_clients_debug(ktpd_clients_t *db);
  39. */
  40. C_DECL_END
  41. #endif // _klish_ktp_session_h