OSDN Git Service

HTTPDのAPI化準備
[mimic/MiMicSDK.git] / lib / src / api / NyLPC_cHttpdConnection.h
1 /*\r
2  * NyLPC_cHttpdConnection.h\r
3  *\r
4  *  Created on: 2013/02/07\r
5  *      Author: nyatla\r
6  */\r
7 \r
8 #ifndef NYLPC_CHTTPDCONNECTION_H_\r
9 #define NYLPC_CHTTPDCONNECTION_H_\r
10 #include "NyLPC_stdlib.h"\r
11 #include "NyLPC_uipService.h"\r
12 #include "NyLPC_cHttpRequestPrefixParser.h"\r
13 \r
14 /** 受信バッファのサイズ*/\r
15 #define NyLPC_NyLPC_TcHttpdConnection_SIZE_OF_RX_BUF 512\r
16 \r
17 \r
18 typedef NyLPC_TUInt8 NyLPC_TcHttpdConnection_Status;\r
19 \r
20 /** リクエストプレフィクスを読み出した状態*/\r
21 #define NyLPC_cHttpdConnection_Status_IDLE                      0\r
22 /** コネクションは接続済*/\r
23 #define NyLPC_cHttpdConnection_Status_CONNECTED         1\r
24 /** コネクションはACCEPT済*/\r
25 #define NyLPC_cHttpdConnection_Status_ACCEPTED          2\r
26 /** リクエストプレフィクスを読み出した状態*/\r
27 #define NyLPC_cHttpdConnection_Status_PREFETCH          3\r
28 /** リクエストパース済み*/\r
29 #define NyLPC_cHttpdConnection_Status_REQPARSED         4\r
30 /** レスポンスヘッダ送付済*/\r
31 #define NyLPC_cHttpdConnection_Status_RESHEAD_SENT      5\r
32 /** レスポンスBODY送付済*/\r
33 #define NyLPC_cHttpdConnection_Status_RESBODY_SENT      6\r
34 \r
35 \r
36 \r
37 typedef struct NyLPC_TcHttpdConnection NyLPC_TcHttpdConnection_t;\r
38 struct NyLPC_TcHttpdConnection\r
39 {\r
40         NyLPC_TUInt8 _status;\r
41         NyLPC_TcTcpSocket_t _socket;\r
42         NyLPC_TUInt8 _rxbuf[NyLPC_NyLPC_TcHttpdConnection_SIZE_OF_RX_BUF];\r
43         NyLPC_TcHttpStream_t _in_stream;\r
44         NyLPC_TcHttpRequestPrefixParser_t _pparser;\r
45 };\r
46 void NyLPC_cHttpdConnection_initialize(NyLPC_TcHttpdConnection_t* i_inst);\r
47 void NyLPC_cHttpdConnection_finalize(NyLPC_TcHttpdConnection_t* i_inst);\r
48 \r
49 /**protected */\r
50 /**\r
51  * listenerでConnectionのソケットに接続を待ちます。\r
52  */\r
53 NyLPC_TBool NyLPC_cHttpdConnection_listen(NyLPC_TcHttpdConnection_t* i_inst,NyLPC_TcTcpListener_t* i_listener);\r
54 /**\r
55  * コネクションのソケットをacceptします。\r
56  */\r
57 NyLPC_TBool NyLPC_cHttpdConnection_accept(NyLPC_TcHttpdConnection_t* i_inst);\r
58 /**\r
59  * コネクションを閉じます。\r
60  */\r
61 void NyLPC_cHttpdConnection_close(NyLPC_TcHttpdConnection_t* i_inst);\r
62 \r
63 \r
64 \r
65 \r
66 \r
67 \r
68 \r
69 #endif /* NYLPC_CHTTPDCONNECTION_H_ */\r