net.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /** @file net.h
  2. * @brief Public interface for faux net functions.
  3. */
  4. #ifndef _faux_net_h
  5. #define _faux_net_h
  6. #include <faux/faux.h>
  7. typedef struct faux_net_s faux_net_t;
  8. C_DECL_BEGIN
  9. // Network base I/O functions
  10. ssize_t faux_send(int fd, const void *buf, size_t n,
  11. const struct timespec *timeout, const sigset_t *sigmask);
  12. ssize_t faux_send_block(int fd, const void *buf, size_t n,
  13. const struct timespec *timeout, const sigset_t *sigmask,
  14. int (*isbreak_func)(void));
  15. ssize_t faux_sendv(int fd, const struct iovec *iov, int iovcnt,
  16. const struct timespec *timeout, const sigset_t *sigmask);
  17. ssize_t faux_sendv_block(int fd, const struct iovec *iov, int iovcnt,
  18. const struct timespec *timeout, const sigset_t *sigmask,
  19. int (*isbreak_func)(void));
  20. ssize_t faux_recv(int fd, void *buf, size_t n,
  21. const struct timespec *timeout, const sigset_t *sigmask);
  22. ssize_t faux_recv_block(int fd, void *buf, size_t n,
  23. const struct timespec *timeout, const sigset_t *sigmask,
  24. int (*isbreak_func)(void));
  25. ssize_t faux_recvv(int fd, struct iovec *iov, int iovcnt,
  26. const struct timespec *timeout, const sigset_t *sigmask);
  27. ssize_t faux_recvv_block(int fd, struct iovec *iov, int iovcnt,
  28. const struct timespec *timeout, const sigset_t *sigmask,
  29. int (*isbreak_func)(void));
  30. // Network class
  31. faux_net_t *faux_net_new(void);
  32. void faux_net_free(faux_net_t *faux_net);
  33. void faux_net_set_fd(faux_net_t *faux_net, int fd);
  34. int faux_net_get_fd(faux_net_t *faux_net);
  35. void faux_net_set_send_timeout(faux_net_t *faux_net, struct timespec *send_timeout);
  36. void faux_net_set_recv_timeout(faux_net_t *faux_net, struct timespec *recv_timeout);
  37. void faux_net_set_timeout(faux_net_t *faux_net, struct timespec *timeout);
  38. void faux_net_set_isbreak_func(faux_net_t *faux_net, int (*isbreak_func)(void));
  39. void faux_net_sigmask_empty(faux_net_t *faux_net);
  40. void faux_net_sigmask_fill(faux_net_t *faux_net);
  41. void faux_net_sigmask_add(faux_net_t *faux_net, int signum);
  42. void faux_net_sigmask_del(faux_net_t *faux_net, int signum);
  43. ssize_t faux_net_send(faux_net_t *faux_net, const void *buf, size_t n);
  44. ssize_t faux_net_sendv(faux_net_t *faux_net,
  45. const struct iovec *iov, int iovcnt);
  46. ssize_t faux_net_recv(faux_net_t *faux_net, void *buf, size_t n);
  47. ssize_t faux_net_recvv(faux_net_t *faux_net, struct iovec *iov, int iovcnt);
  48. C_DECL_END
  49. #endif