cshiori  1
 全て クラス ファイル 関数 変数 列挙型 列挙値 マクロ定義 ページ
cshiolink.h ファイル

SHIOLINKインターフェース [詳解]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bool.h"
#include "cshiori.h"
#include "strutl.h"

[ソースコード]

マクロ定義

#define CSHIOLINK_REQUEST_LINES_BUFFER_STEP   10
 cshiolink_request() で一度に確保する行バッファ
 

関数

bool cshiolink_load (const char *dirpath, bool(*load)(const char *))
 SHIORI/3.x load. [詳解]
 
char * cshiolink_request (FILE *in, struct cshiori_response_message *(*request)(struct cshiori_request_message *, struct cshiori_response_message *))
 SHIORI/3.x request. [詳解]
 
bool cshiolink_unload (bool(*unload)(void))
 SHIORI/3.x unload. [詳解]
 
void cshiolink_mainloop (FILE *in, FILE *out, bool(*load)(const char *), struct cshiori_response_message *(*request)(struct cshiori_request_message *, struct cshiori_response_message *), bool(*unload)(void))
 メインループ [詳解]
 

詳解

SHIOLINKインターフェース

著者
Narazaka: http://narazaka.net/

(C) 2014 Narazaka : Licensed under The MIT License - http://narazaka.net/license/MIT?2014

関数詳解

bool cshiolink_load ( const char *  dirpath,
bool(*)(const char *)  load 
)

SHIORI/3.x load.

load()を実行します。

通常 cshiolink_mainloop() から呼ばれます。

引数
dirpathSHIORIのディレクトリパス
loadload()関数へのポインタ

load()関数は

1 bool load(const char* dirpath);

です。

void cshiolink_mainloop ( FILE *  in,
FILE *  out,
bool(*)(const char *)  load,
struct cshiori_response_message *(*)(struct cshiori_request_message *, struct cshiori_response_message *)  request,
bool(*)(void)  unload 
)

メインループ

与えられたファイルポインタ in からSHIOLINK Requestを読み出し、対応した処理を実行して out にSHIOLINK Responseを書き出します。

引数
inSHIOLINK Requestを読み出すファイルポインタ
outSHIOLINK Responseを書き出すファイルポインタ
loadload()関数へのポインタ
requestrequest()関数へのポインタ
unloadunload()関数へのポインタ
char* cshiolink_request ( FILE *  in,
struct cshiori_response_message *(*)(struct cshiori_request_message *, struct cshiori_response_message *)  request 
)

SHIORI/3.x request.

与えられたファイルポインタ in からSHIORI/3.x Requestを読み出し、 request() 関数に渡して、戻ったSHIORI/3.x Responseを文字列にして返します。

通常 cshiolink_mainloop() から呼ばれます。

引数
inSHIORI/3.x Requestを読み出すファイルポインタ
requestrequest()関数へのポインタ

request()関数は

1 struct cshiori_response_message* request(struct cshiori_request_message* req, struct cshiori_response_message* res);

です。

入力をSHIORI/3.xとしてパースできなかった場合と、request()がNULLを返した場合は、400 Bad Requestの文字列を返します。

戻り値
SHIORI/3.x Response文字列。失敗した場合NULLを返します。
bool cshiolink_unload ( bool(*)(void)  unload)

SHIORI/3.x unload.

unload()を実行します。

通常 cshiolink_mainloop() から呼ばれます。

引数
unloadunload()関数へのポインタ

unload()関数は

1 bool unload(void);

です。