ailia  1.3.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 #ifdef __EMSCRIPTEN__
41 #define AILIA_FSIZE_RETURN_TYPE int
42 #else
43 #define AILIA_FSIZE_RETURN_TYPE long long
44 #endif
45 
46 /* ユーザ定義コールバックの返値 */
56 #define AILIA_USER_API_SUCCESS (0)
57 
66 #define AILIA_USER_API_FAILED (-1)
67 
68 /*
69  * ファイルアクセスコールバック関数は、1ネットワークオブジェクトにつき、
70  * 1スレッドから呼び出されます。
71  * 複数のオブジェクトに対して、共通のコールバック関数を与える場合は、
72  * コールバック関数はスレッドセーフである必要があります。
73  * また、コールバック関数からは例外を投げずに、
74  * AILIA_USER_API_FAILEDでエラーを通知してください。
75  * なお、アクセスするファイルはバイナリデータとなりますので、
76  * コールバックはバイナリデータを前提とした実装としてください。
77  * (例、fopenを利用して実装する場合はファイルモードにbを追加してください)
78  */
79 
80 #ifdef __cplusplus
81 extern "C" {
82 #endif
83 
99 typedef void*(AILIA_USER_API* AILIA_USER_API_FOPEN)(const void*);
100 
119 
136 
153 
176 
193 
203 #define AILIA_FILE_CALLBACK_VERSION (1)
204 
205 /* ファイルアクセスコールバック関数構造体 */
206 typedef struct _ailiaFileCallback {
207  AILIA_USER_API_FOPEN fopen; /* ユーザ定義fopen関数 */
208  AILIA_USER_API_FSEEK fseek; /* ユーザ定義fseek関数 */
209  AILIA_USER_API_FTELL ftell; /* ユーザ定義ftell関数 */
210  AILIA_USER_API_FREAD fread; /* ユーザ定義fread関数 */
211  AILIA_USER_API_FSIZE fsize; /* ユーザ定義fsize関数 */
212  AILIA_USER_API_FCLOSE fclose; /* ユーザ定義fclose関数 */
214 
215 #ifdef __cplusplus
216 }
217 #endif
218 #endif /* !defined(INCLUDED_AILIA_CALL) */
int(AILIA_USER_API * AILIA_USER_API_FSEEK)(void *, AILIA_FSIZE_RETURN_TYPE)
It seeks the file specified.
Definition: ailia_call.h:118
AILIA_USER_API_FCLOSE fclose
Definition: ailia_call.h:212
int(AILIA_USER_API * AILIA_USER_API_FREAD)(void *, AILIA_FSIZE_RETURN_TYPE, void *)
Reads data from the file.
Definition: ailia_call.h:175
AILIA_FSIZE_RETURN_TYPE(AILIA_USER_API * AILIA_USER_API_FSIZE)(void *)
Gets the size of the file.
Definition: ailia_call.h:152
AILIA_FSIZE_RETURN_TYPE(AILIA_USER_API * AILIA_USER_API_FTELL)(void *)
Gets the current position in the file.
Definition: ailia_call.h:135
int(AILIA_USER_API * AILIA_USER_API_FCLOSE)(void *)
Closes the file.
Definition: ailia_call.h:192
AILIA_USER_API_FREAD fread
Definition: ailia_call.h:210
void *(AILIA_USER_API * AILIA_USER_API_FOPEN)(const void *)
Opens a file.
Definition: ailia_call.h:99
#define AILIA_FSIZE_RETURN_TYPE
Definition: ailia_call.h:43
AILIA_USER_API_FSEEK fseek
Definition: ailia_call.h:208
#define AILIA_USER_API
Definition: ailia_call.h:37
AILIA_USER_API_FSIZE fsize
Definition: ailia_call.h:211
struct _ailiaFileCallback ailiaFileCallback
Definition: ailia_call.h:206
AILIA_USER_API_FOPEN fopen
Definition: ailia_call.h:207
AILIA_USER_API_FTELL ftell
Definition: ailia_call.h:209