1174201a993f0b055d3963591e1fa0fa51f300ca
[supertux.git] / external / squirrel / include / sqstdio.h
1 /*      see copyright notice in squirrel.h */\r
2 #ifndef _SQSTDIO_H_\r
3 #define _SQSTDIO_H_\r
4 \r
5 #ifdef __cplusplus\r
6 \r
7 #define SQSTD_STREAM_TYPE_TAG 0x80000000\r
8 \r
9 struct SQStream {\r
10         virtual SQInteger Read(void *buffer, SQInteger size) = 0;\r
11         virtual SQInteger Write(void *buffer, SQInteger size) = 0;\r
12         virtual SQInteger Flush() = 0;\r
13         virtual SQInteger Tell() = 0;\r
14         virtual SQInteger Len() = 0;\r
15         virtual SQInteger Seek(SQInteger offset, SQInteger origin) = 0;\r
16         virtual bool IsValid() = 0;\r
17         virtual bool EOS() = 0;\r
18 };\r
19 \r
20 extern "C" {\r
21 #endif\r
22 \r
23 #define SQ_SEEK_CUR 0\r
24 #define SQ_SEEK_END 1\r
25 #define SQ_SEEK_SET 2\r
26 \r
27 typedef void* SQFILE;\r
28 \r
29 SQUIRREL_API SQFILE sqstd_fopen(const SQChar *,const SQChar *);\r
30 SQUIRREL_API SQInteger sqstd_fread(SQUserPointer, SQInteger, SQInteger, SQFILE);\r
31 SQUIRREL_API SQInteger sqstd_fwrite(const SQUserPointer, SQInteger, SQInteger, SQFILE);\r
32 SQUIRREL_API SQInteger sqstd_fseek(SQFILE , SQInteger , SQInteger);\r
33 SQUIRREL_API SQInteger sqstd_ftell(SQFILE);\r
34 SQUIRREL_API SQInteger sqstd_fflush(SQFILE);\r
35 SQUIRREL_API SQInteger sqstd_fclose(SQFILE);\r
36 SQUIRREL_API SQInteger sqstd_feof(SQFILE);\r
37 \r
38 SQUIRREL_API SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file,SQBool own);\r
39 SQUIRREL_API SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file);\r
40 \r
41 //compiler helpers\r
42 SQUIRREL_API SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror);\r
43 SQUIRREL_API SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror);\r
44 SQUIRREL_API SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v,const SQChar *filename);\r
45 \r
46 SQUIRREL_API SQRESULT sqstd_register_iolib(HSQUIRRELVM v);\r
47 \r
48 #ifdef __cplusplus\r
49 } /*extern "C"*/\r
50 #endif\r
51 \r
52 #endif /*_SQSTDIO_H_*/\r
53 \r