This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Dependents: MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more
NyLPC_cModFileIoBaseClass.h
00001 /* 00002 * NyLPC_cModRemoteMcu.h 00003 * 00004 * Created on: 2013/03/07 00005 * Author: nyatla 00006 */ 00007 00008 #ifndef NYLPC_cModFileIoBaseClass_H_ 00009 #define NYLPC_cModFileIoBaseClass_H_ 00010 00011 #include "NyLPC_http.h" 00012 #include "NyLPC_stdlib.h" 00013 #include "../NyLPC_cHttpdConnection.h" 00014 #include "NyLPC_cModRomFiles.h" 00015 #ifdef __cplusplus 00016 extern "C" { 00017 #endif /* __cplusplus */ 00018 00019 /** 00020 * ファイルアップロードの為の基本シーケンスを提供する抽象クラスです。 00021 * 継承クラスで_abstruct_function以下の関数に実体を設定して使います。 00022 */ 00023 typedef struct NyLPC_TcModFileIoBaseClass NyLPC_TcModFileIoBaseClass_t; 00024 00025 /* 00026 * Abstruct関数の定義 00027 */ 00028 00029 /** 00030 * i_fnameの内容をi_body_parserの内容で更新します。 00031 * この関数はHTTPD_LOCKがかかった状態でコールされます。 00032 * 関数にはコネクションにHTTP応答を返却する実装をしてください。 00033 * @return 00034 * 処理が失敗した場合はFALSEを返します。FALSEを返すとCallerはHTTPセッションを切断します。 00035 */ 00036 typedef NyLPC_TBool (*NyLPC_cModFileIoBaseClass_uploadFunction)(NyLPC_TcHttpdConnection_t* i_connection,const NyLPC_TChar* i_fname,NyLPC_TcHttpBodyParser_t* i_body_parser); 00037 /** 00038 * i_fnameのファイルを作成します。 00039 * この関数はHTTPD_LOCKがかかった状態でコールされます。 00040 * 関数にはコネクションにHTTP応答を返却する実装をしてください。 00041 * @return 00042 * 処理が失敗した場合はFALSEを返します。FALSEを返すとCallerはHTTPセッションを切断します。 00043 */ 00044 typedef NyLPC_TBool (*NyLPC_cModFileIoBaseClass_createFunction)(NyLPC_TcHttpdConnection_t* i_connection,const NyLPC_TChar* i_fname); 00045 /** 00046 * i_fnameのファイルを削除します。 00047 * この関数はHTTPD_LOCKがかかった状態でコールされます。 00048 * 関数にはコネクションにHTTP応答を返却する実装をしてください。 00049 * @return 00050 * 処理が失敗した場合はFALSEを返します。FALSEを返すとCallerはHTTPセッションを切断します。 00051 */ 00052 typedef NyLPC_TBool (*NyLPC_cModFileIoBaseClass_removeFunction)(NyLPC_TcHttpdConnection_t* i_connection,const NyLPC_TChar* i_fname); 00053 00054 /** 00055 * Abstruct関数テーブル 00056 */ 00057 struct NyLPC_TcModFileIoBaseClass_AbstructFunction 00058 { 00059 NyLPC_cModFileIoBaseClass_uploadFunction upload; 00060 NyLPC_cModFileIoBaseClass_createFunction create; 00061 NyLPC_cModFileIoBaseClass_removeFunction remove; 00062 }; 00063 00064 /** 00065 * クラス構造体 00066 */ 00067 struct NyLPC_TcModFileIoBaseClass 00068 { 00069 NyLPC_TcModRomFiles_t super; 00070 /** 00071 * 処理関数へのポインタ構造体 00072 */ 00073 struct NyLPC_TcModFileIoBaseClass_AbstructFunction _abstruct_function; 00074 }; 00075 00076 /** 00077 * コンストラクタ。 00078 */ 00079 void NyLPC_cModFileIoBaseClass_initialize(NyLPC_TcModFileIoBaseClass_t* i_inst,const NyLPC_TChar* i_ref_root_path); 00080 void NyLPC_cModFileIoBaseClass_finalize(NyLPC_TcModFileIoBaseClass_t* i_inst); 00081 00082 /** 00083 * モジュールがコネクションをハンドリングできるかを返します。 00084 */ 00085 NyLPC_TBool NyLPC_cModFileIoBaseClass_canHandle(NyLPC_TcModFileIoBaseClass_t* i_inst,NyLPC_TcHttpdConnection_t* i_connection); 00086 /** 00087 * モジュールを実行します。 00088 * この関数は、リクエストを解析して、抽象関数upload,create,deleteの何れかに該当する場合はそれを呼び出します。 00089 * @return 00090 * 処理に成功したか 00091 */ 00092 NyLPC_TBool NyLPC_cModFileIoBaseClass_execute(NyLPC_TcModFileIoBaseClass_t* i_inst,NyLPC_TcHttpdConnection_t* i_connection); 00093 00094 #ifdef __cplusplus 00095 } 00096 #endif /* __cplusplus */ 00097 00098 #endif /* NYLPC_CMODREMOTEMCU_H_ */
Generated on Tue Jul 12 2022 15:46:16 by 1.7.2