Class FileOdbBackend
Object Database Backend (ODB) implementation using VirtualFileSystem
public class FileOdbBackend : IOdbBackend, IDisposable
- Inheritance
-
FileOdbBackend
- Implements
- Extension Methods
Constructors
FileOdbBackend(string, string, bool)
public FileOdbBackend(string vfsRootUrl, string indexName, bool isReadOnly)
Parameters
Properties
ContentIndexMap
Gets the asset index map.
public IContentIndexMap ContentIndexMap { get; }
Property Value
- IContentIndexMap
The asset index map.
IsReadOnly
public bool IsReadOnly { get; }
Property Value
Methods
BuildUrl(string, ObjectId)
public static string BuildUrl(string vfsRootUrl, ObjectId objectId)
Parameters
Returns
CreateStream()
Creates a stream that will be saved to database when closed and/or disposed.
public OdbStreamWriter CreateStream()
Returns
- OdbStreamWriter
a stream writer that should be passed to Write(ObjectId, Stream, int, bool) in order to be stored in the database
Delete(ObjectId)
Deletes the specified ObjectId.
public void Delete(ObjectId objectId)
Parameters
objectId
ObjectIdThe object id.
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
EnumerateObjects()
Enumerates the object stored in this backend.
public IEnumerable<ObjectId> EnumerateObjects()
Returns
Exists(ObjectId)
Determines if the object with the specified ObjectId exists.
public virtual bool Exists(ObjectId objectId)
Parameters
Returns
GetFilePath(ObjectId)
Returns the file path corresponding to the given id (in the VFS domain), if appliable.
public string GetFilePath(ObjectId objectId)
Parameters
Returns
- string
The file path.
GetSize(ObjectId)
Requests that this backend read an object's length (but not its contents).
public virtual int GetSize(ObjectId objectId)
Parameters
Returns
- int
The object size.
OpenStream(ObjectId, VirtualFileMode, VirtualFileAccess, VirtualFileShare)
public virtual Stream OpenStream(ObjectId objectId, VirtualFileMode mode = VirtualFileMode.Open, VirtualFileAccess access = VirtualFileAccess.Read, VirtualFileShare share = VirtualFileShare.Read)
Parameters
objectId
ObjectIdThe ObjectId.
mode
VirtualFileModeThe mode.
access
VirtualFileAccessThe access.
share
VirtualFileShareThe process share mode.
Returns
Write(ObjectId, Stream, int, bool)
Writes an object to the backing store. The backend may need to compute the object ID and return it to the caller.
public virtual ObjectId Write(ObjectId objectId, Stream dataStream, int length, bool forceWrite = false)
Parameters
objectId
ObjectIdThe ObjectId if already computed, or Empty if not determined yet.
dataStream
StreamThe data stream.
length
intThe data length.
forceWrite
boolSet to true to force writing the datastream even if a content is already stored with the same id. Default is false.