This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NyLPC_cModFileIoBaseClass.h Source File

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_ */