sequenceDiagram
participant stdio as std::io
participant vfs as kernel::vfs
participant fuse as kernel::fuse
participant fuse3 as fuse3
application -->> rencfs : create_mount_point(mount_path,data_path,...)
create participant MountPoint
rencfs -->> MountPoint :
MountPoint -->> application : MountPoint
application -->> MountPoint : mount()
create participant MountHandle
MountPoint -->> MountHandle :
MountHandle -->> application : MountHandle
application -->> stdio : File::create(mount_path/file)
stdio -->> vfs : create
vfs -->> fuse : create
fuse -->> fuse3 : create
fuse3 -->> rencfs : create
rencfs -->> rencfs : create
rencfs -->> fuse3 : (file_handle, attributes)
fuse3 -->> fuse : (file_handle, attributes)
fuse -->> vfs : (file_handle, attributes)
vfs -->> stdio : (file_handle, attributes)
stdio -->> application : file_handle
Note over stdio,application : file operations (e.g. read/write/close)
application -->> MountHandle : unmount()
MountHandle -->> application :
destroy MountHandle
rencfs --x MountHandle :
destroy MountPoint
rencfs --x MountPoint :
application --x application : exit
Further details about the create sequence can be found in Create.