9typedef struct VFSDir VFSDir;
10typedef struct VFSVFSFile VFSVFSFile;
11typedef struct VFSVFSFile_WeakRef VFSVFSFile_WeakRef;
15typedef struct VFSVFSFile_ClassIf {
20 bool (*close)(_In_
void* self);
21 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);
22 bool (*write)(_In_
void* self, _In_reads_bytes_(sz)
void* buf,
size_t sz, _Out_opt_ _Deref_out_range_(0, sz)
size_t* byteswritten);
23 int64 (*tell)(_In_
void* self);
24 int64 (*seek)(_In_
void* self, int64 off,
FSSeekType seektype);
25 bool (*flush)(_In_
void* self);
27extern VFSVFSFile_ClassIf VFSVFSFile_ClassIf_tmpl;
29typedef struct VFSVFSFile {
31 VFSVFSFile_ClassIf* _;
42#define VFSVFSFile(inst) ((VFSVFSFile*)(unused_noeval((inst) && &((inst)->_is_VFSVFSFile)), (inst)))
43#define VFSVFSFileNone ((VFSVFSFile*)NULL)
45typedef struct VFSVFSFile_WeakRef {
48 void* _is_VFSVFSFile_WeakRef;
49 void* _is_ObjInst_WeakRef;
54#define VFSVFSFile_WeakRef(inst) ((VFSVFSFile_WeakRef*)(unused_noeval((inst) && &((inst)->_is_VFSVFSFile_WeakRef)), (inst)))
58#define vfsvfsfileCreate(f) VFSVFSFile_create(f)
61#define vfsvfsfileClose(self) (self)->_->close(VFSVFSFile(self))
63#define vfsvfsfileRead(self, buf, sz, bytesread) (self)->_->read(VFSVFSFile(self), buf, sz, bytesread)
65#define vfsvfsfileWrite(self, buf, sz, byteswritten) (self)->_->write(VFSVFSFile(self), buf, sz, byteswritten)
67#define vfsvfsfileTell(self) (self)->_->tell(VFSVFSFile(self))
69#define vfsvfsfileSeek(self, off, seektype) (self)->_->seek(VFSVFSFile(self), off, seektype)
71#define vfsvfsfileFlush(self) (self)->_->flush(VFSVFSFile(self))
#define saDeclarePtr(name)
enum FSSeekTypeEnum FSSeekType
#define _objfactory_guaranteed
CX Object System - Object-oriented programming in C.