#include <ramdisk.h>
A RamDisk provides a complete in-memory file system. It supports a Clone method to efficiently duplicate a whole file system.
Public Types | |
using | ContentCreator = Delegate< Result< IoMemoryRef >()> |
using | PermissionChecker = Delegate< Result< void >(const Url &url)> |
Public Member Functions | |
MAXON_METHOD Result< Url > | GetRoot () |
MAXON_METHOD Result< FileUtilities::ReadDirectoryTreeReceiver > | Mount (const Block< const String > &mountPoint, const Url &source, const Url &mirror) |
MAXON_METHOD Result< Url > | CreateLazyFile (const Block< const String > &path, ContentCreator &&creator) |
MAXON_METHOD Result< void > | SetPermissions (PermissionChecker &&permissions) |
MAXON_OBSERVABLE (void, ObservableLoadIntoCacheChange,(const RamDiskRef &ramDisk, Bool finished), ObservableCombinerRunAllComponent) | |
MAXON_METHOD Result< void > | ChangeMirrorPath (const Url &oldBase, const Url &newBase) |
Static Public Member Functions | |
static MAXON_METHOD Result< Tuple< Bool, Url > > | IsInCache (const Url &url) |
static MAXON_METHOD Result< void > | LoadIntoCache (const Url &url, const IoProgressDelegate &progress) |
static MAXON_METHOD Result< void > | RemoveFromCache (const Url &url) |
static MAXON_METHOD Result< RamDiskRef > | Create () |
static MAXON_METHOD Result< RamDiskRef > | Create (const String &ramdiskId) |
static MAXON_METHOD Result< void > | ChangeRamDiskMirrorPath (const Url &oldBase, const Url &newBase) |
static MAXON_METHOD RamDiskRef | FindExisting (const String &ramdiskId) |
Private Member Functions | |
MAXON_INTERFACE (RamDiskInterface, MAXON_REFERENCE_NORMAL, "net.maxon.misc.interface.ramdisk") | |
using ContentCreator = Delegate<Result<IoMemoryRef>()> |
using PermissionChecker = Delegate<Result<void>(const Url& url)> |
|
private |
MAXON_METHOD Result<Url> GetRoot | ( | ) |
Returns the Url of the root directory of this RAM disk. The Url has the ramdisk
scheme and uses the unique identifier of the RAM disk as authority. Also the returned Url contains a strong reference on this RAM disk, so it suffices to keep the Url alive to keep this RAM disk alive. Likewise all Urls which are derived from the returned Url will contain a strong reference.
MAXON_METHOD Result<FileUtilities::ReadDirectoryTreeReceiver> Mount | ( | const Block< const String > & | mountPoint, |
const Url & | source, | ||
const Url & | mirror | ||
) |
MAXON_METHOD Result<Url> CreateLazyFile | ( | const Block< const String > & | path, |
ContentCreator && | creator | ||
) |
MAXON_METHOD Result<void> SetPermissions | ( | PermissionChecker && | permissions | ) |
Sets the permission checker for this RAM disk.
[in] | permissions | Delegate which gets called to check for valid permissions whenever a stream is opened. |
MAXON_OBSERVABLE | ( | void | , |
ObservableLoadIntoCacheChange | , | ||
(const RamDiskRef &ramDisk, Bool finished) | , | ||
ObservableCombinerRunAllComponent | |||
) |
IsInCache allows to detect if the url is cached.
[in] | url | Url to detect. |
|
static |
|
static |
|
static |
|
static |
MAXON_METHOD Result<void> ChangeMirrorPath | ( | const Url & | oldBase, |
const Url & | newBase | ||
) |
|
static |
|
static |
FindExisting returns an existing ram disk.
[in] | ramdiskId | Id to find |