17typedef struct VFSDir VFSDir;
19typedef struct VFSFile_WeakRef VFSFile_WeakRef;
22#define _sti_VFSFile _sti_object
23#define SType_VFSFile VFSFile*
24#define STStorageType_VFSFile VFSFile*
25#define STypeArg_VFSFile(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(VFSFile, val))
26#define STypeArgPtr_VFSFile(type, val) (stgeneric*)objInstCheckClassPtr(VFSFile, val)
27#define STypeCheckedArg_VFSFile(type, val) stType(type), stArg(type, val)
28#define STypeCheckedPtrArg_VFSFile(type, val) stType(type), stArgPtr(type, val)
32typedef struct VFSFile_ClassIf {
41 bool (*closeHandle)(_In_
void* self);
42 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);
43 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);
44 int64 (*tell)(_In_
void* self);
45 int64 (*seek)(_In_
void* self, int64 off,
FSSeekType seektype);
46 bool (*flush)(_In_
void* self);
48extern VFSFile_ClassIf VFSFile_ClassIf_tmpl;
75#define VFSFile(inst) objInstCheckClass(VFSFile, inst)
76#define VFSFileNone ((VFSFile*)NULL)
78typedef struct VFSFile_WeakRef {
81 void* _is_VFSFile_WeakRef;
82 void* _is_File_WeakRef;
83 void* _is_ObjInst_WeakRef;
88#define VFSFile_WeakRef(inst) objWeakRefCheckClass(VFSFile, inst)
92#define vfsfileCreate(vfs, inner) VFSFile_create(VFS(vfs), File(inner))
103#define vfsfileWriteString(self, str, byteswritten) File_writeString(File(self), str, byteswritten)
111#define vfsfileCloseHandle(self) ((self) ? ((self)->_->closeHandle(VFSFile(self))) : false)
113#define vfsfileRead(self, buf, sz, bytesread) ((self) ? ((self)->_->read(VFSFile(self), buf, sz, bytesread)) : false)
115#define vfsfileWrite(self, buf, sz, byteswritten) ((self) ? ((self)->_->write(VFSFile(self), buf, sz, byteswritten)) : false)
117#define vfsfileTell(self) ((self) ? ((self)->_->tell(VFSFile(self))) : -1)
119#define vfsfileSeek(self, off, seektype) ((self) ? ((self)->_->seek(VFSFile(self), off, seektype)) : -1)
121#define vfsfileFlush(self) ((self) ? ((self)->_->flush(VFSFile(self))) : false)
#define saDeclarePtr(name)
enum FSSeekTypeEnum FSSeekType
#define _objfactory_guaranteed
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.