17typedef struct File_WeakRef File_WeakRef;
20#define _sti_File _sti_object
21#define SType_File File*
22#define STStorageType_File File*
23#define STypeArg_File(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(File, val))
24#define STypeArgPtr_File(type, val) (stgeneric*)objInstCheckClassPtr(File, val)
25#define STypeCheckedArg_File(type, val) stType(type), stArg(type, val)
26#define STypeCheckedPtrArg_File(type, val) stType(type), stArgPtr(type, val)
30typedef struct File_ClassIf {
39 bool (*closeHandle)(_In_
void* self);
40 bool (*read)(_In_
void* self, _Out_writes_bytes_to_(sz, *bytesread)
void* buf,
size_t sz, _Out_ _Deref_out_range_(0, sz)
size_t* bytesread);
41 bool (*write)(_In_
void* self, _In_reads_bytes_(sz)
const void* buf,
size_t sz, _Out_opt_ _Deref_out_range_(0, sz)
size_t* byteswritten);
42 int64 (*tell)(_In_
void* self);
43 int64 (*seek)(_In_
void* self, int64 off,
FSSeekType seektype);
44 bool (*flush)(_In_
void* self);
46extern File_ClassIf File_ClassIf_tmpl;
71#define File(inst) objInstCheckClass(File, inst)
72#define FileNone ((File*)NULL)
74typedef struct File_WeakRef {
77 void* _is_File_WeakRef;
78 void* _is_ObjInst_WeakRef;
83#define File_WeakRef(inst) objWeakRefCheckClass(File, inst)
85bool File_writeString(_In_
File* self, _In_opt_ strref str, _Out_opt_
size_t* byteswritten);
95#define fileWriteString(self, str, byteswritten) File_writeString(File(self), str, byteswritten)
103#define fileCloseHandle(self) ((self) ? ((self)->_->closeHandle(File(self))) : false)
116#define fileRead(self, buf, sz, bytesread) ((self) ? ((self)->_->read(File(self), buf, sz, bytesread)) : false)
129#define fileWrite(self, buf, sz, byteswritten) ((self) ? ((self)->_->write(File(self), buf, sz, byteswritten)) : false)
135#define fileTell(self) ((self) ? ((self)->_->tell(File(self))) : -1)
143#define fileSeek(self, off, seektype) ((self) ? ((self)->_->seek(File(self), off, seektype)) : -1)
152#define fileFlush(self) ((self) ? ((self)->_->flush(File(self))) : false)
Platform-specific filesystem operations.
#define saDeclarePtr(name)
enum FSSeekTypeEnum FSSeekType
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.