ailia  1.6.0.0
ailia_call.h
Go to the documentation of this file.
1 
29 #if !defined(INCLUDED_AILIA_CALL)
30 #define INCLUDED_AILIA_CALL
31 
32 /* 呼び出し規約 */
33 
34 #if defined(_WIN32) && !defined(_WIN64)
35 #define AILIA_USER_API __stdcall
36 #else
37 #define AILIA_USER_API
38 #endif
39 
40 #define AILIA_FSIZE_RETURN_TYPE long long
41 
42 /* ユーザ定義コールバックの返値 */
52 #define AILIA_USER_API_SUCCESS (0)
62 #define AILIA_USER_API_FAILED (-1)
63 
64 /*
65  * ファイルアクセスコールバック関数は、1ネットワークオブジェクトにつき、
66  * 1スレッドから呼び出されます。
67  * 複数のオブジェクトに対して、共通のコールバック関数を与える場合は、
68  * コールバック関数はスレッドセーフである必要があります。
69  * また、コールバック関数からは例外を投げずに、
70  * AILIA_USER_API_FAILEDでエラーを通知してください。
71  * なお、アクセスするファイルはバイナリデータとなりますので、
72  * コールバックはバイナリデータを前提とした実装としてください。
73  * (例、fopenを利用して実装する場合はファイルモードにbを追加してください)
74  */
75 
76 #ifdef __cplusplus
77 extern "C" {
78 #endif
79 
95 typedef void*(AILIA_USER_API* AILIA_USER_API_FOPEN)(const void*);
96 
115 
132 
149 
172 
189 
199 #define AILIA_FILE_CALLBACK_VERSION (1)
200 
201 /* ファイルアクセスコールバック関数構造体 */
202 typedef struct _ailiaFileCallback {
203  AILIA_USER_API_FOPEN fopen; /* ユーザ定義fopen関数 */
204  AILIA_USER_API_FSEEK fseek; /* ユーザ定義fseek関数 */
205  AILIA_USER_API_FTELL ftell; /* ユーザ定義ftell関数 */
206  AILIA_USER_API_FREAD fread; /* ユーザ定義fread関数 */
207  AILIA_USER_API_FSIZE fsize; /* ユーザ定義fsize関数 */
208  AILIA_USER_API_FCLOSE fclose; /* ユーザ定義fclose関数 */
210 
211 #ifdef __cplusplus
212 }
213 #endif
214 #endif /* !defined(INCLUDED_AILIA_CALL) */
#define AILIA_USER_API
Definition: ailia_call.h:37
AILIA_FSIZE_RETURN_TYPE(AILIA_USER_API * AILIA_USER_API_FTELL)(void *)
Gets the current position in the file.
Definition: ailia_call.h:131
AILIA_FSIZE_RETURN_TYPE(AILIA_USER_API * AILIA_USER_API_FSIZE)(void *)
Gets the size of the file.
Definition: ailia_call.h:148
#define AILIA_FSIZE_RETURN_TYPE
Definition: ailia_call.h:40
void *(AILIA_USER_API * AILIA_USER_API_FOPEN)(const void *)
Opens a file.
Definition: ailia_call.h:95
int(AILIA_USER_API * AILIA_USER_API_FREAD)(void *, AILIA_FSIZE_RETURN_TYPE, void *)
Reads data from the file.
Definition: ailia_call.h:171
struct _ailiaFileCallback ailiaFileCallback
int(AILIA_USER_API * AILIA_USER_API_FSEEK)(void *, AILIA_FSIZE_RETURN_TYPE)
It seeks the file specified.
Definition: ailia_call.h:114
int(AILIA_USER_API * AILIA_USER_API_FCLOSE)(void *)
Closes the file.
Definition: ailia_call.h:188
Definition: ailia_call.h:202
AILIA_USER_API_FTELL ftell
Definition: ailia_call.h:205
AILIA_USER_API_FOPEN fopen
Definition: ailia_call.h:203
AILIA_USER_API_FSIZE fsize
Definition: ailia_call.h:207
AILIA_USER_API_FREAD fread
Definition: ailia_call.h:206
AILIA_USER_API_FCLOSE fclose
Definition: ailia_call.h:208
AILIA_USER_API_FSEEK fseek
Definition: ailia_call.h:204