11typedef struct VFSFS VFSFS;
12typedef struct VFSFS_WeakRef VFSFS_WeakRef;
15#define _sti_VFSFS _sti_object
16#define SType_VFSFS VFSFS*
17#define STStorageType_VFSFS VFSFS*
18#define STypeArg_VFSFS(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(VFSFS, val))
19#define STypeArgPtr_VFSFS(type, val) (stgeneric*)objInstCheckClassPtr(VFSFS, val)
20#define STypeCheckedArg_VFSFS(type, val) stType(type), stArg(type, val)
21#define STypeCheckedPtrArg_VFSFS(type, val) stType(type), stArgPtr(type, val)
23typedef struct VFSFS_ClassIf {
29 flags_t (*flags)(_In_
void* self);
31 _Ret_opt_valid_
File* (*open)(_In_
void* self, _In_opt_ strref path, flags_t flags);
33 bool (*setTimes)(_In_
void* self, _In_opt_ strref path, int64 modified, int64 accessed);
34 bool (*createDir)(_In_
void* self, _In_opt_ strref path);
35 bool (*removeDir)(_In_
void* self, _In_opt_ strref path);
36 bool (*deleteFile)(_In_
void* self, _In_opt_ strref path);
37 bool (*rename)(_In_
void* self, _In_opt_ strref oldpath, _In_opt_ strref newpath);
38 bool (*getFSPath)(_In_
void* self, _Inout_
string* out, _In_opt_ strref path);
39 bool (*searchInit)(_In_
void* self, _Out_
FSSearchIter* iter, _In_opt_ strref path, _In_opt_ strref pattern,
bool stat);
40 bool (*searchValid)(_In_
void* self, _In_
FSSearchIter* iter);
41 bool (*searchNext)(_In_
void* self, _Inout_
FSSearchIter* iter);
42 void (*searchFinish)(_In_
void* self, _Inout_
FSSearchIter* iter);
44extern VFSFS_ClassIf VFSFS_ClassIf_tmpl;
59#define VFSFS(inst) objInstCheckClass(VFSFS, inst)
60#define VFSFSNone ((VFSFS*)NULL)
62typedef struct VFSFS_WeakRef {
65 void* _is_VFSFS_WeakRef;
66 void* _is_ObjInst_WeakRef;
71#define VFSFS_WeakRef(inst) objWeakRefCheckClass(VFSFS, inst)
75#define vfsfsCreate(rootpath) VFSFS_create(rootpath)
80#define vfsfsFlags(self) (self)->_->flags(VFSFS(self))
84#define vfsfsOpen(self, path, flags) (self)->_->open(VFSFS(self), path, flags)
86#define vfsfsStat(self, path, stat) (self)->_->stat(VFSFS(self), path, stat)
88#define vfsfsSetTimes(self, path, modified, accessed) (self)->_->setTimes(VFSFS(self), path, modified, accessed)
90#define vfsfsCreateDir(self, path) (self)->_->createDir(VFSFS(self), path)
92#define vfsfsRemoveDir(self, path) (self)->_->removeDir(VFSFS(self), path)
94#define vfsfsDeleteFile(self, path) (self)->_->deleteFile(VFSFS(self), path)
96#define vfsfsRename(self, oldpath, newpath) (self)->_->rename(VFSFS(self), oldpath, newpath)
98#define vfsfsGetFSPath(self, out, path) (self)->_->getFSPath(VFSFS(self), out, path)
100#define vfsfsSearchInit(self, iter, path, pattern, stat) (self)->_->searchInit(VFSFS(self), iter, path, pattern, stat)
102#define vfsfsSearchValid(self, iter) (self)->_->searchValid(VFSFS(self), iter)
104#define vfsfsSearchNext(self, iter) (self)->_->searchNext(VFSFS(self), iter)
106#define vfsfsSearchFinish(self, iter) (self)->_->searchFinish(VFSFS(self), iter)
#define saDeclarePtr(name)
enum FSPathStatEnum FSPathStat
@ FS_Nonexistent
Path does not exist.
#define _objfactory_check
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.