src/server/safs/service.h

changeset 193
aa8393527b1e
parent 184
a2a15ad6e4b9
equal deleted inserted replaced
183:f33974f0dce0 193:aa8393527b1e
28 28
29 #ifndef SERVICE_H 29 #ifndef SERVICE_H
30 #define SERVICE_H 30 #define SERVICE_H
31 31
32 #include "../public/nsapi.h" 32 #include "../public/nsapi.h"
33 #include "../util/systems.h"
33 34
34 #ifdef __cplusplus 35 #ifdef __cplusplus
35 extern "C" { 36 extern "C" {
36 #endif 37 #endif
37 38
39 #define AIO_BUF_SIZE 16384
40
38 typedef struct HttpRange HttpRange; 41 typedef struct HttpRange HttpRange;
39 42
40 struct HttpRange { 43 struct HttpRange {
41 off_t begin; 44 off_t begin;
42 off_t end; 45 off_t end;
43 HttpRange *next; 46 HttpRange *next;
44 }; 47 };
45 48
49 typedef struct AsyncSendRange {
50 Session *sn;
51 Request *rq;
52 SYS_FILE in;
53 SYS_NETFD out;
54 off_t offset;
55 off_t end;
56 //off_t length;
57 off_t pos;
58 char *header;
59 int headerlen;
60 size_t headerpos;
61 Event *readev;
62 Event *writeev;
63 aiocb_s *aio;
64 size_t wpos;
65 WSBool read_complete;
66 WSBool read_inprogress;
67 WSBool write_inprogress;
68 WSBool error;
69 } AsyncSendRange;
46 70
47 int send_file(pblock *pb, Session *sn, Request *rq); 71 int send_file(pblock *pb, Session *sn, Request *rq);
48 72
49 int service_hello(pblock *pb, Session *sn, Request *rq); 73 int service_hello(pblock *pb, Session *sn, Request *rq);
50 int service_ws_hello(pblock *pb, Session *sn, Request *rq); 74 int service_ws_hello(pblock *pb, Session *sn, Request *rq);

mercurial