cubos::engine::FileBridge class

Abstract bridge type defined to reduce boilerplate code in bridge implementations which open a single file to load and save assets.

This bridge should be used as a base class for bridges which load and save assets. Child classes must implement the loadFromFile() and saveToFile() methods, which are called with a file stream to load and save the asset from and to, respectively.

Base classes

class AssetBridge
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.

Derived classes

class AudioBridge
Bridge which loads and saves Audio assets.
class ImageBridge
Bridge which loads and saves Image assets.
template<typename T>
class JSONBridge
Bridge for loading and saving assets which are serialized to and from a JSON file.
class SceneBridge
Bridge which loads and saves Scene assets.
class ShaderBridge
Bridge for loading shader assets.
class VoxelGridBridge
Bridge which loads and saves Grid assets.
class VoxelModelBridge
Bridge which loads and saves VoxelModel assets.
class VoxelPaletteBridge
Bridge which loads and saves Palette assets.

Constructors, destructors, conversion operators

FileBridge(const core::reflection::Type& type, bool asynchronous = true) explicit
Constructs a bridge.

Public functions

auto load(Assets& assets, const AnyAsset& handle) -> bool final
Loads an asset.
auto save(const Assets& assets, const AnyAsset& handle) -> bool final
Saves an asset.

Protected functions

auto loadFromFile(Assets& assets, const AnyAsset& handle, core::memory::Stream& stream) -> bool pure virtual
Loads an asset from a file stream.
auto saveToFile(const Assets& assets, const AnyAsset& handle, core::memory::Stream& stream) -> bool pure virtual
Saves an asset to a file stream.

Function documentation

cubos::engine::FileBridge::FileBridge(const core::reflection::Type& type, bool asynchronous = true) explicit

Constructs a bridge.

Parameters
type Type of assets loaded by the bridge.
asynchronous Whether the bridge should load assets asynchronously.

bool cubos::engine::FileBridge::load(Assets& assets, const AnyAsset& handle) final

Loads an asset.

Parameters
assets Manager to write into.
handle Handle of the asset being loaded.
Returns Whether the asset was successfully loaded.

The metadata of the given asset should already be present in the asset manager.

bool cubos::engine::FileBridge::save(const Assets& assets, const AnyAsset& handle) final

Saves an asset.

Parameters
assets Manager to read from.
handle Handle of the asset being saved.
Returns Whether the asset was successfully saved.

The asset should be loaded in the asset manager.

bool cubos::engine::FileBridge::loadFromFile(Assets& assets, const AnyAsset& handle, core::memory::Stream& stream) pure virtual protected

Loads an asset from a file stream.

Parameters
assets Manager to write into.
handle Handle of the asset being loaded.
stream File stream.
Returns Whether the asset was successfully loaded.

bool cubos::engine::FileBridge::saveToFile(const Assets& assets, const AnyAsset& handle, core::memory::Stream& stream) pure virtual protected

Saves an asset to a file stream.

Parameters
assets Manager to read from.
handle Handle of the asset being saved.
stream File stream.
Returns Whether the asset was successfully saved.