Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    ObjectDatabase Class

    Namespace: Stride.Core.Storage
    Assembly: Stride.Core.Serialization.dll

    Gives access to the object database.

    System.Object → ObjectDatabase
    Derived from ObjectDatabase:

    public class ObjectDatabase : IDisposable
    Name Description
    Constructors
    ObjectDatabase(String, String, String, Boolean)

    Initializes a new instance of the ObjectDatabase class.

    Properties
    BundleBackend
    ContentIndexMap
    Methods
    CreateBlob(IntPtr, Int32)

    Creates a in-memory binary blob as a Blob that will also be stored using the active IOdbBackend. Even if Blob is new (not in the ODB), memory will be copied.

    CreateBundle(ObjectId[], String, BundleOdbBackend, ISet<ObjectId>, Dictionary<String, ObjectId>, IList<String>, Boolean)
    CreateDefaultDatabase()

    Creates a new instance of the ObjectDatabase class using default database path, index name, and local database path, and loading default bundle.

    CreateStream()

    Creates a stream that can then be saved directly in the database using .

    Delete(ObjectId)
    Dispose()
    EnumerateLooseObjects()
    EnumerateObjects()
    Exists(ObjectId)
    GetFilePath(ObjectId)
    GetSize(ObjectId)
    LoadBundle(String)

    Loads the specified bundle.

    Lookup(ObjectId)

    Lookups the Blob with the specified ObjectId. Any object returned will have its reference count incremented.

    OpenStream(ObjectId, VirtualFileMode, VirtualFileAccess, VirtualFileShare)

    Opens a stream for the specified ObjectId.

    Read(ObjectId, Boolean)

    Returns a data stream of the data specified ObjectId.

    TryGetObjectLocation(ObjectId, out String, out Int64, out Int64)
    UnloadBundle(String)

    Loads the specified bundle.

    Write(IntPtr, Int32, Boolean)

    Writes the specified data using the active IOdbBackend.

    Write(Stream)

    Writes the specified data using the active IOdbBackend.

    Write(Stream, ObjectId, Boolean)

    Writes the specified data using the active IOdbBackend and a precomputer ObjectId.

    | Improve this Doc View Source

    Constructors


    ObjectDatabase(String, String, String, Boolean)

    Initializes a new instance of the ObjectDatabase class.

    public ObjectDatabase(string vfsMainUrl, string indexName, string vfsAdditionalUrl = null, bool loadDefaultBundle = true)
    Parameters
    Type Name Description
    System.String vfsMainUrl

    The VFS main URL.

    System.String indexName

    Name of the index file.

    System.String vfsAdditionalUrl

    The VFS additional URL. It will be used only if vfsMainUrl is read-only.

    System.Boolean loadDefaultBundle
    | Improve this Doc View Source

    Properties


    BundleBackend

    public BundleOdbBackend BundleBackend { get; }
    Property Value
    Type Description
    BundleOdbBackend

    ContentIndexMap

    public ObjectDatabaseContentIndexMap ContentIndexMap { get; }
    Property Value
    Type Description
    ObjectDatabaseContentIndexMap
    | Improve this Doc View Source

    Methods


    CreateBlob(IntPtr, Int32)

    Creates a in-memory binary blob as a Blob that will also be stored using the active IOdbBackend. Even if Blob is new (not in the ODB), memory will be copied.

    public Blob CreateBlob(IntPtr data, int size)
    Parameters
    Type Name Description
    System.IntPtr data

    The data.

    System.Int32 size

    The size.

    Returns
    Type Description
    Blob

    The Blob containing given data, with its reference count incremented.


    CreateBundle(ObjectId[], String, BundleOdbBackend, ISet<ObjectId>, Dictionary<String, ObjectId>, IList<String>, Boolean)

    public string CreateBundle(ObjectId[] objectIds, string bundleName, BundleOdbBackend bundleBackend, ISet<ObjectId> disableCompressionIds, Dictionary<string, ObjectId> indexMap, IList<string> dependencies, bool useIncrementalBundle)
    Parameters
    Type Name Description
    ObjectId[] objectIds
    System.String bundleName
    BundleOdbBackend bundleBackend
    System.Collections.Generic.ISet<ObjectId> disableCompressionIds
    System.Collections.Generic.Dictionary<System.String, ObjectId> indexMap
    System.Collections.Generic.IList<System.String> dependencies
    System.Boolean useIncrementalBundle
    Returns
    Type Description
    System.String

    CreateDefaultDatabase()

    Creates a new instance of the ObjectDatabase class using default database path, index name, and local database path, and loading default bundle.

    public static ObjectDatabase CreateDefaultDatabase()
    Returns
    Type Description
    ObjectDatabase

    A new instance of the ObjectDatabase class.


    CreateStream()

    Creates a stream that can then be saved directly in the database using .

    public OdbStreamWriter CreateStream()
    Returns
    Type Description
    OdbStreamWriter

    a stream writer that should be passed to in order to be stored in the database


    Delete(ObjectId)

    public void Delete(ObjectId objectId)
    Parameters
    Type Name Description
    ObjectId objectId

    Dispose()

    public void Dispose()

    EnumerateLooseObjects()

    public IEnumerable<ObjectId> EnumerateLooseObjects()
    Returns
    Type Description
    System.Collections.Generic.IEnumerable<ObjectId>

    EnumerateObjects()

    public IEnumerable<ObjectId> EnumerateObjects()
    Returns
    Type Description
    System.Collections.Generic.IEnumerable<ObjectId>

    Exists(ObjectId)

    public bool Exists(ObjectId objectId)
    Parameters
    Type Name Description
    ObjectId objectId
    Returns
    Type Description
    System.Boolean

    GetFilePath(ObjectId)

    public string GetFilePath(ObjectId objectId)
    Parameters
    Type Name Description
    ObjectId objectId
    Returns
    Type Description
    System.String

    GetSize(ObjectId)

    public int GetSize(ObjectId objectId)
    Parameters
    Type Name Description
    ObjectId objectId
    Returns
    Type Description
    System.Int32

    LoadBundle(String)

    Loads the specified bundle.

    public Task LoadBundle(string bundleName)
    Parameters
    Type Name Description
    System.String bundleName

    Name of the bundle.

    Returns
    Type Description
    System.Threading.Tasks.Task

    Task that will complete when bundle is loaded.


    Lookup(ObjectId)

    Lookups the Blob with the specified ObjectId. Any object returned will have its reference count incremented.

    public Blob Lookup(ObjectId objectId)
    Parameters
    Type Name Description
    ObjectId objectId

    The object id.

    Returns
    Type Description
    Blob

    The Blob matching this ObjectId with an incremented reference count if it exists; [null] otherwise.


    OpenStream(ObjectId, VirtualFileMode, VirtualFileAccess, VirtualFileShare)

    Opens a stream for the specified ObjectId.

    public Stream OpenStream(ObjectId objectId, VirtualFileMode mode = VirtualFileMode.Open, VirtualFileAccess access = VirtualFileAccess.Read, VirtualFileShare share = VirtualFileShare.Read)
    Parameters
    Type Name Description
    ObjectId objectId

    The object identifier.

    VirtualFileMode mode

    The mode.

    VirtualFileAccess access

    The access.

    VirtualFileShare share

    The share.

    Returns
    Type Description
    System.IO.Stream

    A Stream.

    Exceptions
    Type Condition
    System.InvalidOperationException

    Read-only object database.


    Read(ObjectId, Boolean)

    Returns a data stream of the data specified ObjectId.

    public Stream Read(ObjectId objectId, bool checkCache = false)
    Parameters
    Type Name Description
    ObjectId objectId

    The ObjectId.

    System.Boolean checkCache

    if set to true [check cache for existing blobs].

    Returns
    Type Description
    System.IO.Stream

    A NativeStream of the requested data.


    TryGetObjectLocation(ObjectId, out String, out Int64, out Int64)

    public bool TryGetObjectLocation(ObjectId objectId, out string filePath, out long start, out long end)
    Parameters
    Type Name Description
    ObjectId objectId
    System.String filePath
    System.Int64 start
    System.Int64 end
    Returns
    Type Description
    System.Boolean

    UnloadBundle(String)

    Loads the specified bundle.

    public void UnloadBundle(string bundleName)
    Parameters
    Type Name Description
    System.String bundleName

    Name of the bundle.


    Write(IntPtr, Int32, Boolean)

    Writes the specified data using the active IOdbBackend.

    public ObjectId Write(IntPtr data, int size, bool forceWrite = false)
    Parameters
    Type Name Description
    System.IntPtr data

    The data.

    System.Int32 size

    The size.

    System.Boolean forceWrite

    Set to true to force writing the datastream even if a content is already stored with the same id. Default is false.

    Returns
    Type Description
    ObjectId

    The ObjectId of the given data.


    Write(Stream)

    Writes the specified data using the active IOdbBackend.

    public ObjectId Write(Stream stream)
    Parameters
    Type Name Description
    System.IO.Stream stream

    The data stream.

    Returns
    Type Description
    ObjectId

    The ObjectId of the given data.


    Write(Stream, ObjectId, Boolean)

    Writes the specified data using the active IOdbBackend and a precomputer ObjectId.

    public ObjectId Write(Stream stream, ObjectId objectId, bool forceWrite = false)
    Parameters
    Type Name Description
    System.IO.Stream stream

    The data stream.

    ObjectId objectId

    The precomputed objectId.

    System.Boolean forceWrite

    Set to true to force writing the datastream even if a content is already stored with the same id. Default is false.

    Returns
    Type Description
    ObjectId

    The ObjectId of the given data, which is the same that the passed one.


    Extension Methods

    ComponentBaseExtensions.DisposeBy<T>(T, ICollectorHolder)
    ComponentBaseExtensions.RemoveDisposeBy<T>(T, ICollectorHolder)
    • Improve this Doc
    • View Source
    In This Article
    In This Article
    • Constructors
      • ObjectDatabase(String, String, String, Boolean)
    • Properties
      • BundleBackend
      • ContentIndexMap
    • Methods
      • CreateBlob(IntPtr, Int32)
      • CreateBundle(ObjectId[], String, BundleOdbBackend, ISet<ObjectId>, Dictionary<String, ObjectId>, IList<String>, Boolean)
      • CreateDefaultDatabase()
      • CreateStream()
      • Delete(ObjectId)
      • Dispose()
      • EnumerateLooseObjects()
      • EnumerateObjects()
      • Exists(ObjectId)
      • GetFilePath(ObjectId)
      • GetSize(ObjectId)
      • LoadBundle(String)
      • Lookup(ObjectId)
      • OpenStream(ObjectId, VirtualFileMode, VirtualFileAccess, VirtualFileShare)
      • Read(ObjectId, Boolean)
      • TryGetObjectLocation(ObjectId, out String, out Int64, out Int64)
      • UnloadBundle(String)
      • Write(IntPtr, Int32, Boolean)
      • Write(Stream)
      • Write(Stream, ObjectId, Boolean)
    • Extension Methods

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation