OSDN Git Service

76c8dade7767c41fd22d5a8110a60e0246aa14bb
[mimic/MiMicSDK.git] / lib / src / net / httpd / NyLPC_cHttpd.c
1 #include "NyLPC_cHttpd_protected.h"\r
2 \r
3 \r
4 \r
5 void NyLPC_cHttpd_initialize(NyLPC_TcHttpd_t* i_inst,NyLPC_TUInt16 i_port_number)\r
6 {\r
7         int i;\r
8         i_inst->_num_of_active_connection=0;\r
9         NyLPC_cMutex_initialize(&i_inst->_mutex);\r
10         NyLPC_cTcpListener_initialize(&(i_inst->_listener),i_port_number);\r
11         for(i=0;i<NyLPC_cHttpd_NUMBER_OF_CONNECTION_THREAD;i++){\r
12                 NyLPC_cHttpdThread_initialize(&(i_inst->_thread[i]),i_inst,NyLPC_TcThread_PRIORITY_IDLE);\r
13         }\r
14 }\r
15 void NyLPC_cHttpd_finalize(NyLPC_TcHttpd_t* i_inst)\r
16 {\r
17         NyLPC_cMutex_finalize(&i_inst->_mutex);\r
18 }\r
19 \r
20 void NyLPC_cHttpd_loop(NyLPC_TcHttpd_t* i_inst)\r
21 {\r
22         int i;\r
23         for(;;){\r
24                 //ターミネイト状態のタスクを検索\r
25                 for(i=0;i<NyLPC_cHttpd_NUMBER_OF_CONNECTION_THREAD;i++){\r
26                         NyLPC_cHttpdThread_start(&(i_inst->_thread[i]),&i_inst->_listener);\r
27                 }\r
28                 NyLPC_cThread_yield();\r
29         }\r
30 }\r
31 \r
32 \r
33 \r
34 NyLPC_TUInt16 NyLPC_cHttpd_incNumOfConnection(NyLPC_TcHttpd_t* i_inst)\r
35 {\r
36         i_inst->_num_of_active_connection++;\r
37         NyLPC_Assert(i_inst->_num_of_active_connection<=NyLPC_cHttpd_NUMBER_OF_CONNECTION_THREAD);\r
38         return i_inst->_num_of_active_connection;\r
39 }\r
40 NyLPC_TUInt16 NyLPC_cHttpd_decNumOfConnection(NyLPC_TcHttpd_t* i_inst)\r
41 {\r
42         i_inst->_num_of_active_connection--;\r
43         NyLPC_Assert(i_inst->_num_of_active_connection>=0);\r
44         return i_inst->_num_of_active_connection;\r
45 }\r
46 \r
47 /**\r
48 * Httpd全体で唯一のロックを取得する。\r
49 */\r
50 void NyLPC_cHttpd_lock(NyLPC_TcHttpd_t* i_inst)\r
51 {\r
52         NyLPC_cMutex_lock(&i_inst->_mutex);\r
53 }\r
54 /**\r
55 * Httpd全体で唯一のロックを開放する。\r
56 */\r
57 void NyLPC_cHttpd_unlock(NyLPC_TcHttpd_t* i_inst)\r
58 {\r
59         NyLPC_cMutex_unlock(&i_inst->_mutex);\r
60 }\r