jerry_net.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #ifndef JERRY_NET_H__
  2. #define JERRY_NET_H__
  3. #ifdef RT_USING_LWIP
  4. #include <rtthread.h>
  5. #include <unistd.h>
  6. #include <netdb.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <stdlib.h>
  10. #include <jerry_util.h>
  11. #include <jerry_event.h>
  12. #include <jerry_callbacks.h>
  13. #include <jerry_buffer.h>
  14. #include <sys/time.h>
  15. #include <sys/socket.h>
  16. #include <sys/select.h>
  17. #include <sys/types.h>
  18. #define BUFFER_SIZE 1024
  19. #define SERVER_MAX_CONNECTIONS (RT_LWIP_TCP_PCB_NUM - 3)
  20. struct socket_node
  21. {
  22. struct socket_node *next;
  23. struct socket_node *prev;
  24. jerry_value_t js_socket;
  25. } typedef socket_list_t;
  26. struct socket_info
  27. {
  28. int socket_id ;
  29. int pipe_write_fd;
  30. int pipe_read_fd;
  31. struct rt_pipe_device *pipe;
  32. bool allowHalfOpen ;
  33. bool writable ;
  34. bool readable ;
  35. bool isClosing;
  36. struct js_callback *event_callback;
  37. struct js_callback *fun_callback;
  38. struct js_callback *close_callback;
  39. rt_thread_t readData_thread;
  40. rt_thread_t connect_thread;
  41. jerry_value_t js_server;
  42. jerry_value_t this_value;
  43. rt_sem_t socket_sem;
  44. struct timeval timeout;
  45. } typedef net_socoketInfo_t;
  46. struct server_info
  47. {
  48. int server_id;
  49. bool allowHalfOpen;
  50. struct js_callback *event_callback;
  51. struct js_callback *close_callback;
  52. rt_thread_t listen_thread;
  53. socket_list_t *socket_list;
  54. jerry_value_t this_value;
  55. rt_sem_t server_sem;
  56. } typedef net_serverInfo_t;
  57. struct read_thread_info
  58. {
  59. jerry_value_t js_socket;
  60. } typedef net_readInfo_t;
  61. struct connect_info
  62. {
  63. struct sockaddr_in *socket_fd;
  64. int socket_id;
  65. jerry_value_t js_socket;
  66. } typedef net_connectInfo_t;
  67. struct listen_thread_info
  68. {
  69. jerry_value_t js_server;
  70. int backlog;
  71. } typedef net_listenInfo_t;
  72. struct write_data_info
  73. {
  74. jerry_value_t js_data;
  75. jerry_value_t js_callback;
  76. bool stop_read;
  77. rt_sem_t stop_sem;
  78. } typedef net_writeInfo_t;
  79. struct event_callback_info
  80. {
  81. char *event_name;
  82. jerry_value_t js_return;
  83. jerry_value_t js_target;
  84. } typedef net_event_info;
  85. struct fun_callback_info
  86. {
  87. void *args;
  88. int args_cnt;
  89. jerry_value_t js_run;
  90. jerry_value_t js_this;
  91. } typedef net_funcInfo_t;
  92. struct close_callback_info
  93. {
  94. jerry_value_t js_server;
  95. jerry_value_t js_socket;
  96. } typedef net_closeInfo_t;
  97. #endif
  98. #endif