0001
0002 #ifndef _PSSTDIO_H_
0003 #define _PSSTDIO_H_
0004
0005 #ifdef __cplusplus
0006
0007 #define PSSTD_STREAM_TYPE_TAG 0x80000000
0008
0009 struct PSStream {
0010 virtual PSInteger Read(void *buffer, PSInteger size) = 0;
0011 virtual PSUserPointer ReadLine(void *buffer, PSInteger size)=0;
0012 virtual PSInteger Write(void *buffer, PSInteger size) = 0;
0013 virtual PSInteger Flush() = 0;
0014 virtual PSInteger Tell() = 0;
0015 virtual PSInteger Len() = 0;
0016 virtual PSInteger Seek(PSInteger offset, PSInteger origin) = 0;
0017 virtual bool IsValid() = 0;
0018 virtual bool EOS() = 0;
0019 };
0020
0021 extern "C" {
0022 #endif
0023
0024 #include <stddef.h>
0025
0026 #define PS_SEEK_CUR 0
0027 #define PS_SEEK_END 1
0028 #define PS_SEEK_SET 2
0029
0030 typedef void* PSFILE;
0031
0032
0033
0034
0035 typedef struct
0036 {
0037 char *memptr;
0038 size_t size;
0039 size_t offset;
0040 } PSMemReader;
0041
0042 PSCRIPT_API PSFILE psstd_fopen(const PSChar *,const PSChar *);
0043 PSCRIPT_API PSInteger psstd_fread(PSUserPointer, PSInteger, PSInteger, PSFILE);
0044 PSCRIPT_API PSUserPointer psstd_fgets(PSUserPointer, PSInteger, PSFILE);
0045 PSCRIPT_API PSInteger psstd_fwrite(const PSUserPointer, PSInteger, PSInteger, PSFILE);
0046 PSCRIPT_API PSInteger psstd_fseek(PSFILE , PSInteger , PSInteger);
0047 PSCRIPT_API PSInteger psstd_ftell(PSFILE);
0048 PSCRIPT_API PSInteger psstd_fflush(PSFILE);
0049 PSCRIPT_API PSInteger psstd_fclose(PSFILE);
0050 PSCRIPT_API PSInteger psstd_feof(PSFILE);
0051
0052 PSCRIPT_API PSRESULT psstd_createfile(HPSCRIPTVM v, PSFILE file,PSBool own);
0053 PSCRIPT_API PSRESULT psstd_getfile(HPSCRIPTVM v, PSInteger idx, PSFILE *file);
0054
0055
0056 PSCRIPT_API PSRESULT psstd_loadfile(HPSCRIPTVM v,const PSChar *filename,PSBool printerror);
0057 PSCRIPT_API PSRESULT psstd_dofile(HPSCRIPTVM v,const PSChar *filename,PSBool retval,PSBool printerror);
0058 PSCRIPT_API PSRESULT psstd_writeclosuretofile(HPSCRIPTVM v,const PSChar *filename);
0059 PSCRIPT_API PSRESULT psstd_register_iolib(HPSCRIPTVM v);
0060
0061
0062 PSCRIPT_API PSRESULT psstd_loadmem(HPSCRIPTVM v, PSMemReader *reader);
0063
0064
0065 #ifdef __cplusplus
0066 }
0067 #endif
0068
0069 #endif
0070