1#include <cx/fs/fileobj.cxh>
2#include <cx/fs/vfsobj.cxh>
7/// A file opened through a VFS with vfsOpen()
9/// The provider's own file, plus what the VFS layer adds on top of it: copy-on-write lives here,
10/// so providers never have to know about it. Being a File, it can be handed to anything that
11/// takes one, whichever layer opened it.
12class VFSFile extends File {
14 object[File] inner; // the provider's file, which every operation ends up at
16 // for copy-on-write files
17 object[ObjInst] cowprov; // VFSProvider
18 string cowpath; // absolute path to COW file (for cache invalidation)
19 string cowrpath; // relative path for COW file for provider
21 factory create(VFS *vfs, File *inner);