* @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
\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
\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
\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