Search Results for

    Show / Hide Table of Contents

    Class FlaxStorage

    Flax assets storage container.

    Inheritance
    Object
    FlaxStorage
    Inherited Members
    Object::DeleteObject(float timeToLive = 0.0f, bool useGameTime=false)
    Object::DeleteObjectNow()
    Object::Flags
    Object::OnDeleteObject()
    Object::ToString()
    Object::~Object()
    Assembly: FlaxEngine.dll
    File: Engine/Content/Storage/FlaxStorage.h
    Syntax
    public class FlaxStorage : public Object

    Constructors

    ~FlaxStorage()

    Finalizes an instance of the FlaxStorage class.

    Declaration
    public virtual ~FlaxStorage()

    FlaxStorage(const StringView& path)

    Declaration
    protected FlaxStorage(const StringView& path)
    Parameters
    StringView path

    Fields

    _chunks

    Declaration
    protected Array<FlaxChunk* > _chunks
    Field Value
    Array<FlaxChunk >

    _chunksLock

    Declaration
    protected int64 _chunksLock = 0
    Field Value
    int64

    _file

    Declaration
    protected ThreadLocal<FileReadStream* > _file
    Field Value
    ThreadLocal<FileReadStream >

    _files

    Declaration
    protected int64 _files = 0
    Field Value
    int64

    _lastRefLostTime

    Declaration
    protected double _lastRefLostTime
    Field Value
    double

    _loadLocker

    Declaration
    protected CriticalSection _loadLocker
    Field Value
    CriticalSection

    _path

    Declaration
    protected String _path
    Field Value
    String

    _refCount

    Declaration
    protected int64 _refCount = 0
    Field Value
    int64

    _version

    Declaration
    protected uint32 _version = 0
    Field Value
    uint32

    MagicCode

    Magic code stored in file header to identify contents.

    Declaration
    public static int32 MagicCode
    Field Value
    int32

    OnReloaded

    Action fired on storage reloading. bool param means 'wasReloadFail'

    Declaration
    public Delegate<FlaxStorage* , bool> OnReloaded
    Field Value
    Delegate<FlaxStorage , bool>

    OnReloading

    Action fired on storage reloading.

    Declaration
    public Delegate<FlaxStorage* > OnReloading
    Field Value
    Delegate<FlaxStorage >

    Methods

    AddChunk(FlaxChunk* chunk)

    Declaration
    protected void AddChunk(FlaxChunk* chunk)
    Parameters
    FlaxChunk chunk

    AddEntry(Entry& e)

    Declaration
    protected virtual void AddEntry(Entry& e) = 0
    Parameters
    Entry e

    AllocateChunk()

    Allocates the new chunk within a storage container (if it's possible).

    Declaration
    public FlaxChunk* AllocateChunk()
    Returns
    FlaxChunk

    Allocated chunk or null if cannot.

    AllowDataModifications()

    Checks whenever storage container allows the data modifications.

    Declaration
    public virtual bool AllowDataModifications() const = 0
    Returns
    bool

    ChangeAssetID(Entry& e, const Guid& newId)

    Changes the asset identifier. Warning! Changes only ID in storage layer, not dependencies resolving at all!

    Declaration
    public bool ChangeAssetID(Entry& e, const Guid& newId)
    Parameters
    Entry e

    The asset entry.

    Guid newId

    The new identifier.

    Returns
    bool

    True if cannot change data, otherwise false

    CloseFileHandles()

    Closes the file handles (it can be modified from the outside).

    Declaration
    public bool CloseFileHandles()
    Returns
    bool

    Create(const StringView& path, const Array<AssetInitData>& assets, bool silentMode=false, const CustomData* customData=nullptr)

    Creates new FlaxFile using specified assets data.

    Declaration
    public static bool Create(const StringView& path, const Array<AssetInitData>& assets, bool silentMode=false, const CustomData* customData=nullptr)
    Parameters
    StringView path

    The file path.

    Array<AssetInitData> assets

    The assets data to write.

    bool silentMode

    In silent mode don't reload opened storage container that is using target file.

    CustomData customData

    Custom options.

    Returns
    bool

    True if cannot create package, otherwise false

    Create(const StringView& path, const AssetInitData& asset, bool silentMode=false, const CustomData* customData=nullptr)

    Creates new FlaxFile using specified asset data.

    Declaration
    public static bool Create(const StringView& path, const AssetInitData& asset, bool silentMode=false, const CustomData* customData=nullptr)
    Parameters
    StringView path

    The file path.

    AssetInitData asset

    The asset data to write.

    bool silentMode

    In silent mode don't reload opened storage container that is using target file.

    CustomData customData

    Custom options.

    Returns
    bool

    True if cannot create package, otherwise false

    Create(const StringView& path, Span<AssetInitData> assets, bool silentMode=false, const CustomData* customData=nullptr)

    Creates new FlaxFile using specified assets data.

    Declaration
    public static bool Create(const StringView& path, Span<AssetInitData> assets, bool silentMode=false, const CustomData* customData=nullptr)
    Parameters
    StringView path

    The file path.

    Span<AssetInitData> assets

    The assets data to write.

    bool silentMode

    In silent mode don't reload opened storage container that is using target file.

    CustomData customData

    Custom options.

    Returns
    bool

    True if cannot create package, otherwise false

    Create(WriteStream* stream, Span<AssetInitData> assets, const CustomData* customData=nullptr)

    Creates new FlaxFile using specified assets data.

    Declaration
    public static bool Create(WriteStream* stream, Span<AssetInitData> assets, const CustomData* customData=nullptr)
    Parameters
    WriteStream stream

    The output stream.

    Span<AssetInitData> assets

    The assets data to write.

    CustomData customData

    Custom options.

    Returns
    bool

    True if cannot create package, otherwise false

    Dispose()

    Releases storage resources and closes handle to the file.

    Declaration
    public virtual void Dispose()

    GetChunks(Array<FlaxChunk* >& output)

    Gets all the chunks in the storage.

    Declaration
    public void GetChunks(Array<FlaxChunk* >& output) const
    Parameters
    Array<FlaxChunk > output

    The output.

    Returns
    void

    GetEntries(Array<Entry>& output)

    Gets all the entries in the storage.

    Declaration
    public virtual void GetEntries(Array<Entry>& output) const = 0
    Parameters
    Array<Entry> output

    The output.

    GetEntriesCount()

    Gets amount of entries in the storage.

    Declaration
    public virtual int32 GetEntriesCount() const = 0
    Returns
    int32

    GetEntry(const Guid& id, Entry& e)

    Declaration
    protected virtual bool GetEntry(const Guid& id, Entry& e) = 0
    Parameters
    Guid id

    Entry e

    Returns
    bool

    GetEntry(int32 index)

    Gets the asset entry at given index.

    Declaration
    public Entry GetEntry(int32 index) const
    Parameters
    int32 index

    The asset index.

    Returns
    Entry

    The output.

    GetEntry(int32 index, Entry& value)

    Gets the asset entry at given index.

    Declaration
    public virtual void GetEntry(int32 index, Entry& value) const = 0
    Parameters
    int32 index

    The asset index.

    Entry value

    The result.

    GetMemoryUsage()

    Gets total memory used by chunks (in bytes).

    Declaration
    public uint32 GetMemoryUsage() const
    Returns
    uint32

    GetPath()

    Gets the path.

    Declaration
    public String GetPath() const
    Returns
    String

    GetRefCount()

    Gets the references count.

    Declaration
    public uint32 GetRefCount() const
    Returns
    uint32

    HasAsset(const AssetInfo& info)

    Determines whether the specified asset exists in this container.

    Declaration
    public virtual bool HasAsset(const AssetInfo& info) const = 0
    Parameters
    AssetInfo info

    The asset info.

    Returns
    bool

    True if the specified asset exists in this container, otherwise false.

    HasAsset(const Guid& id)

    Determines whether the specified asset exists in this container.

    Declaration
    public virtual bool HasAsset(const Guid& id) const = 0
    Parameters
    Guid id

    The asset identifier.

    Returns
    bool

    True if the specified asset exists in this container, otherwise false.

    IsDisposed()

    Determines whether this instance is disposed.

    Declaration
    public bool IsDisposed() const
    Returns
    bool

    IsLoaded()

    Determines whether this instance is loaded.

    Declaration
    public bool IsLoaded() const
    Returns
    bool

    IsPackage()

    Determines whether this storage container is a package.

    Declaration
    public virtual bool IsPackage() const = 0
    Returns
    bool

    Load()

    Loads package from the file.

    Declaration
    public bool Load()
    Returns
    bool

    True if cannot load, otherwise false

    LoadAssetChunk(FlaxChunk* chunk)

    Loads the asset chunk.

    Declaration
    public bool LoadAssetChunk(FlaxChunk* chunk)
    Parameters
    FlaxChunk chunk

    The chunk.

    Returns
    bool

    True if cannot load data, otherwise false

    LoadAssetHeader(const Entry& e, AssetInitData& data)

    Declaration
    protected bool LoadAssetHeader(const Entry& e, AssetInitData& data)
    Parameters
    Entry e

    AssetInitData data

    Returns
    bool

    LoadAssetHeader(const Guid& id, AssetInitData& data)

    Loads the asset header.

    Declaration
    public bool LoadAssetHeader(const Guid& id, AssetInitData& data)
    Parameters
    Guid id

    The asset identifier.

    AssetInitData data

    The data.

    Returns
    bool

    True if cannot load data, otherwise false

    LoadAssetHeader(const int32 index, AssetInitData& data)

    Loads the asset header.

    Declaration
    public bool LoadAssetHeader(const int32 index, AssetInitData& data)
    Parameters
    int32 index

    The asset index.

    AssetInitData data

    The data.

    Returns
    bool

    True if cannot load data, otherwise false

    Lock()

    Locks the storage container chunks within a code block section (using a local variable that keeps a scope lock).

    Declaration
    public LockData Lock()
    Returns
    LockData

    The scope lock.

    LockChunks()

    Locks the storage chunks data to prevent disposing them. Also ensures that file handles won't be closed while chunks are locked.

    Declaration
    public void LockChunks()
    Returns
    void

    LockSafe()

    Locks the storage container chunks within a code block section (using a local variable that keeps a scope lock).

    Lock is done with a safe critical section for a ContentStorageManager that prevents to minor issues with threading. Should be used on a separate threads (eg. GameCooker thread).

    Declaration
    public LockData LockSafe()
    Returns
    LockData

    The scope lock.

    OnRename(const StringView& newPath)

    Declaration
    public void OnRename(const StringView& newPath)
    Parameters
    StringView newPath

    OpenFile()

    Declaration
    protected FileReadStream* OpenFile()
    Returns
    FileReadStream

    Reload()

    Reloads this storage container.

    Declaration
    public bool Reload()
    Returns
    bool

    True if cannot load, otherwise false

    ReloadSilent()

    Declaration
    protected bool ReloadSilent()
    Returns
    bool

    Save(const AssetInitData& data, bool silentMode=false)

    Saves the specified asset data to the storage container.

    Declaration
    public bool Save(const AssetInitData& data, bool silentMode=false)
    Parameters
    AssetInitData data

    The data to save.

    bool silentMode

    In silent mode don't reload opened storage container that is using target file.

    Returns
    bool

    True if cannot save, otherwise false

    SetEntry(int32 index, const Entry& value)

    Sets the asset entry at given index.

    Declaration
    public virtual void SetEntry(int32 index, const Entry& value) = 0
    Parameters
    int32 index

    The asset index.

    Entry value

    The input value.

    ShouldDispose()

    Checks if storage container should be disposed (it's not used anymore).

    Declaration
    public bool ShouldDispose() const
    Returns
    bool

    Tick(double time)

    Ticks this instance.

    Declaration
    public void Tick(double time)
    Parameters
    double time

    UnlockChunks()

    Unlocks the storage chunks data.

    Declaration
    public void UnlockChunks()
    Returns
    void

    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat