Skip to main content

ResourceTypeId Class

Unique type identifier for engine resources. More...

Declaration

class helios::engine::runtime::world::types::ResourceTypeId { ... }

Private Member Typedefs Index

usingResourceType = helios_engine_common_tag_ResourceTypes

Friends Index

constexpr booloperator==

Public Constructors Index

ResourceTypeId (const size_t id)

Constructs a ResourceTypeId with a specific value. More...

ResourceTypeId (helios::ecs::types::no_init_t)

Constructs an uninitialized ResourceTypeId. More...

Public Member Functions Index

size_tvalue () const noexcept

Returns the underlying ID value. More...

Private Member Attributes Index

size_tid_ {0}

The underlying ID value. More...

Public Static Functions Index

template <typename T>
static ResourceTypeIdid ()

Returns the ResourceTypeId for a specific type. More...

Description

Unique type identifier for engine resources.

ResourceTypeId assigns a unique, monotonically increasing integer ID to each resource type at compile time. Used by ResourceRegistry as an index into the fastAccess_ array for O(1) type-based resource lookup.

All resource categories (Managers, CommandBuffers, CommandHandlers) share a single index space.

See Also

ResourceRegistry

See Also

TypeIndexer

See Also

ComponentTypeId

See Also

CommandTypeId

Definition at line 33 of file ResourceTypeId.ixx.

Private Member Typedefs

ResourceType

using helios::engine::runtime::world::types::ResourceTypeId::ResourceType = helios_engine_common_tag_ResourceTypes

Definition at line 40 of file ResourceTypeId.ixx.

40 using ResourceType = helios_engine_common_tag_ResourceTypes;

Friends

operator==

friend constexpr bool ResourceTypeId, ResourceTypeId
constexpr noexcept default

Definition at line 93 of file ResourceTypeId.ixx.

Public Constructors

ResourceTypeId()

helios::engine::runtime::world::types::ResourceTypeId::ResourceTypeId (const size_t id)
inline explicit

Constructs a ResourceTypeId with a specific value.

Parameters
id

The type ID value.

Definition at line 56 of file ResourceTypeId.ixx.

56 explicit ResourceTypeId(const size_t id) : id_(id) {}

ResourceTypeId()

helios::engine::runtime::world::types::ResourceTypeId::ResourceTypeId (helios::ecs::types::no_init_t)
inline explicit

Constructs an uninitialized ResourceTypeId.

Parameters
no_init_t

Tag to indicate no initialization.

Definition at line 64 of file ResourceTypeId.ixx.

64 explicit ResourceTypeId(helios::ecs::types::no_init_t) {}

Public Member Functions

value()

size_t helios::engine::runtime::world::types::ResourceTypeId::value ()
inline noexcept

Returns the underlying ID value.

Returns

The numeric type ID, suitable for use as an array index.

Definition at line 72 of file ResourceTypeId.ixx.

73 return id_;
74 }

Private Member Attributes

id_

size_t helios::engine::runtime::world::types::ResourceTypeId::id_ {0}

The underlying ID value.

Definition at line 45 of file ResourceTypeId.ixx.

45 size_t id_{0};

Public Static Functions

id()

template <typename T>
ResourceTypeId helios::engine::runtime::world::types::ResourceTypeId::id ()
inline static

Returns the ResourceTypeId for a specific type.

Uses TypeIndexer to generate a unique ID per type. The ID is generated once and cached.

Template Parameters
T

The resource type.

Returns

The unique ResourceTypeId for type T.

Definition at line 88 of file ResourceTypeId.ixx.

88 [[nodiscard]] static ResourceTypeId id() {
89 static const size_t tid = helios::ecs::TypeIndexer<ResourceType>::typeIndex<T>();
90 return ResourceTypeId(tid);
91 }

Reference helios::engine::runtime::registerComponents.


The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.