OSDN Git Service

Httpclientのコメント追加
authornyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Fri, 30 Aug 2013 05:56:02 +0000 (05:56 +0000)
committernyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Fri, 30 Aug 2013 05:56:02 +0000 (05:56 +0000)
write関数の変更

git-svn-id: http://svn.osdn.jp/svnroot/mimic/trunk@311 47198e57-cb75-475f-84c4-a814cd6f29e0

lib/src/net/httpcl/NyLPC_cHttpClient.c
lib/src/net/httpcl/NyLPC_cHttpClient.h

index d4bbbf0..af062b9 100644 (file)
@@ -148,24 +148,48 @@ Error_1:
  * @return\r
  * 0:EOF\r
  */\r
-NyLPC_TBool NyLPC_cHttpClient_writeBody(NyLPC_TcHttpClient_t* i_inst,void* i_buf,NyLPC_TUInt32 i_buf_size)\r
+NyLPC_TBool NyLPC_cHttpClient_write(NyLPC_TcHttpClient_t* i_inst,void* i_buf,NyLPC_TUInt32 i_buf_size)\r
 {\r
-       switch(i_inst->_state){\r
-       case NyLPC_TcHttpClient_ST_SEND_REQ_BODY:\r
-               if(!NyLPC_cHttpBodyWriter_write(&i_inst->pw.body_writer,i_buf,i_buf_size)){\r
-                       //ERROR\r
-                       NyLPC_cHttpClient_close(i_inst);\r
-                       NyLPC_OnErrorGoto(Error);\r
-               }\r
-               break;\r
-       default:\r
+       if(i_inst->_state!=NyLPC_TcHttpClient_ST_SEND_REQ_BODY){\r
                return NyLPC_TBool_FALSE;\r
        }\r
+       if(!NyLPC_cHttpBodyWriter_write(&i_inst->pw.body_writer,i_buf,i_buf_size)){\r
+               //ERROR\r
+               NyLPC_cHttpClient_close(i_inst);\r
+               NyLPC_OnErrorGoto(Error);\r
+       }\r
        return NyLPC_TBool_TRUE;\r
 Error:\r
        return NyLPC_TBool_FALSE;\r
 }\r
 \r
+NyLPC_TBool NyLPC_cHttpClient_writeFormat(NyLPC_TcHttpClient_t* i_inst,const NyLPC_TChar* i_fmt,...)\r
+{\r
+       NyLPC_TBool ret;\r
+       va_list a;\r
+       if(i_inst->_state!=NyLPC_TcHttpClient_ST_SEND_REQ_BODY){\r
+               return NyLPC_TBool_FALSE;\r
+       }\r
+       va_start(a,i_fmt);\r
+       ret=NyLPC_cHttpBodyWriter_formatV(&i_inst->pw.body_writer,i_fmt,a);\r
+       va_end(a);\r
+       if(!ret){\r
+               NyLPC_cHttpClient_close(i_inst);\r
+       }\r
+       return ret;\r
+}\r
+NyLPC_TBool NyLPC_cHttpClient_writeFormatV(NyLPC_TcHttpClient_t* i_inst,const NyLPC_TChar* i_fmt,va_list i_args)\r
+{\r
+       NyLPC_TBool ret;\r
+       if(i_inst->_state!=NyLPC_TcHttpClient_ST_SEND_REQ_BODY){\r
+               return NyLPC_TBool_FALSE;\r
+       }\r
+       ret=NyLPC_cHttpBodyWriter_formatV(&i_inst->pw.body_writer,i_fmt,i_args);\r
+       if(!ret){\r
+               NyLPC_cHttpClient_close(i_inst);\r
+       }\r
+       return ret;\r
+}\r
 \r
 \r
 /**\r
index c7967f6..dca292e 100644 (file)
@@ -39,7 +39,10 @@ void NyLPC_cHttpClient_initialize(NyLPC_TcHttpClient_t* i_inst,void* i_rx_buf,Ny
 \r
 void NyLPC_cHttpClient_finalize(NyLPC_TcHttpClient_t* i_inst);\r
 \r
-\r
+/**\r
+ * サーバとの接続を切断する。\r
+ * ステータスはCLOSEDになる。\r
+ */\r
 void NyLPC_cHttpClient_close(NyLPC_TcHttpClient_t* i_inst);\r
 \r
 \r
@@ -57,8 +60,14 @@ NyLPC_TBool NyLPC_cHttpClient_connect(NyLPC_TcHttpClient_t* i_inst,struct NyLPC_
 \r
 /**\r
  * POSTリクエストを送信する。\r
+ * ステータスはIDLEである必要がある。\r
+ * @param i_content_length\r
+ * 送信bodyのサイズ。最大 0xfffffffe\r
+ * NyLPC_cHttpHeaderWriter_CONTENT_LENGTH_UNLIMITEDの場合はChunked転送になる。\r
  * @return\r
  * 引き続き処理が可能かを返す。\r
+ * TRUE - 成功。ステータスはSEND_REQ_BODYになる。write/getStatusを呼び出せる。\r
+ * FALSE - 失敗。ステータスはCLOSEDになる。\r
  */\r
 NyLPC_TBool NyLPC_cHttpClient_sendMethod(\r
        NyLPC_TcHttpClient_t* i_inst,\r
@@ -71,24 +80,40 @@ NyLPC_TBool NyLPC_cHttpClient_sendMethod(
 \r
 /**\r
  * POSTリクエストのデータを送信する。\r
+ * ステータスはSEND_REQ_BODYである必要がある。\r
+ * @return\r
+ * TRUE - 成功。\r
+ * FALSE - 失敗。ステータスはCLOSEDになる。\r
+ */\r
+NyLPC_TBool NyLPC_cHttpClient_write(NyLPC_TcHttpClient_t* i_inst,void* i_buf,NyLPC_TUInt32 i_buf_size);\r
+\r
+/**\r
+ * 書式文字列としてPOSTリクエストのデータを送信する。\r
+ * ステータスはSEND_REQ_BODYである必要がある。\r
+ * @param i_fmt\r
+ * printfライクなフォーマット文字列\r
  * @return\r
- * 0:EOF\r
+ * TRUE - 成功。\r
+ * FALSE - 失敗。ステータスはCLOSEDになる。\r
  */\r
-NyLPC_TBool NyLPC_cHttpClient_writeBody(NyLPC_TcHttpClient_t* i_inst,void* i_buf,NyLPC_TUInt32 i_buf_size);\r
+NyLPC_TBool NyLPC_cHttpClient_writeFormat(NyLPC_TcHttpClient_t* i_inst,const NyLPC_TChar* i_fmt,...);\r
+NyLPC_TBool NyLPC_cHttpClient_writeFormatV(NyLPC_TcHttpClient_t* i_inst,const NyLPC_TChar* i_fmt,va_list i_args);\r
 \r
 /**\r
  * ステータスコードを返す。\r
+ * ステータスはSEND_REQ_BODYである必要がある。\r
  * @return\r
- * ステータスコード\r
+ * 0 - 失敗。ステータスはCLOSEDになる。\r
+ * その他 - ステータスコード。ステータスはRECV_RES_BODYになる。\r
  */\r
 NyLPC_TUInt16 NyLPC_cHttpClient_getStatus(NyLPC_TcHttpClient_t* i_inst);\r
 \r
 \r
 /**\r
  * GET/POSTリクエストで受信したデータを読み出す。\r
+ * ステータスはRECV_RES_BODYである必要がある。\r
  * @param o_read_len\r
- * 戻り値TRUEの場合のみ有効。\r
- * 終端の場合は0\r
+ * 戻り値TRUEの場合のみ有効。データ終端に達した場合は0になる。\r
  * @return\r
  * TRUE:正常読み出し。o_read_lenの値で終端判定\r
  * FALSE:失敗。コネクションはクローズされる。\r