Struct Manager

Inheritance Relationships

Base Types

Struct Documentation

struct Manager : public CE::Assets::Cache::Store<const Asset, std::string>, public CE::State::Singleton<Manager>

Declaration: final

Qualified identities share the existing provider domain.

Metadata and the resource it describes are published as one immutable generation.

Public Functions

std::shared_ptr<const Program> find_program(const std::string &id) const

Declaration: [[nodiscard]]

Look up an exact qualified program identity without compiling/uploading.

Parameters:

id – Exact namespace:name key, copied only for lookup as needed.

Returns:

Retained immutable recipe/executable pair, or null when missing. A material identity throws invalid_args. Shared cache locking protects lookup; retained handles survive replacement/clearing but retain the original native-domain limits.

std::shared_ptr<const CE::Rendering::Resources::Material> find_material(const std::string &id) const

Declaration: [[nodiscard]]

Look up an exact qualified material identity without native work.

Parameters:

id – Exact namespace:name key.

Returns:

Retained immutable material, or null when missing. A program identity throws invalid_args. Shared cache locking protects lookup; retained handles survive replacement/clearing but native use needs the original live domain.

void validate(const std::vector<Manifest> &manifests, CE::Rendering::Resources::Provider &provider, bool replace = false) const

Validate the complete selected recipe batch and backend CPU capabilities before publication.

Parameters:
  • manifests – Stable selected program/material recipes; material program references must be selected in this batch.

  • provider – Compatible active loading-owner domain; a nonempty batch requires its optional Builder.

  • replace – False reuses existing same-kind generations; true validates replacement candidates. Duplicate/wrong-kind IDs, unselected programs, invalid recipes or unsupported capabilities reject without native construction/cache publication. An empty batch is allowed; existing provider-owner restrictions still apply.

void load(const std::vector<Manifest> &manifests, CE::Rendering::Resources::Provider &provider, bool replace = false)

Validate then build/publish programs before materials on the active provider owner/current context.

Parameters:
  • manifests – Stable selected complete recipe batch.

  • provider – Single supported provider domain with shader builder capability.

  • replace – False preserves existing same-kind keys; true replaces each successful candidate independently. Metadata/executable pairs publish as immutable generations. Native/allocation/publication failure can leave earlier new entries/replacements visible; no batch rollback occurs. Existing retained readers keep old generations.