SimpleKernel 1.17.0
Loading...
Searching...
No Matches
ResourceId Class Reference

资源 ID More...

#include <resource_id.hpp>

Collaboration diagram for ResourceId:
Collaboration graph

Public Member Functions

constexpr auto GetType () const -> ResourceType
 获取资源类型
 
constexpr auto GetData () const -> uint64_t
 获取资源数据
 
constexpr auto GetTypeName () const -> const char *
 获取类型名称(用于调试)
 
constexpr operator bool () const
 检查是否为有效资源
 
constexpr operator uint64_t () const
 隐式转换到 uint64_t(用于存储和比较)
 
constexpr auto operator== (const ResourceId &other) const -> bool
 相等比较操作符
 
constexpr auto operator!= (const ResourceId &other) const -> bool
 不等比较操作符
 
构造/析构函数
constexpr ResourceId (ResourceType type, uint64_t data)
 构造资源 ID
 
 ResourceId ()=default
 
 ResourceId (const ResourceId &)=default
 
 ResourceId (ResourceId &&)=default
 
auto operator= (const ResourceId &) -> ResourceId &=default
 
auto operator= (ResourceId &&) -> ResourceId &=default
 
 ~ResourceId ()=default
 

Private Attributes

uint64_t value_ {0}
 内部存储的原始值
 

Static Private Attributes

static constexpr uint8_t kTypeShift = 56
 
static constexpr uint64_t kTypeMask = 0xFF00000000000000ULL
 
static constexpr uint64_t kDataMask = 0x00FFFFFFFFFFFFFFULL
 

Detailed Description

资源 ID

[63:56] - 资源类型 (8 bits) [55:0] - 资源数据 (56 bits)

Definition at line 77 of file resource_id.hpp.

Constructor & Destructor Documentation

◆ ResourceId() [1/4]

constexpr ResourceId::ResourceId ( ResourceType  type,
uint64_t  data 
)
inlineconstexpr

构造资源 ID

Parameters
type资源类型
data资源数据 (如地址、PID 等)

Definition at line 143 of file resource_id.hpp.

144 : value_((static_cast<uint64_t>(type) << kTypeShift) |
145 (data & kDataMask)) {}
uint64_t value_
内部存储的原始值
static constexpr uint64_t kDataMask
static constexpr uint8_t kTypeShift

◆ ResourceId() [2/4]

ResourceId::ResourceId ( )
default

◆ ResourceId() [3/4]

ResourceId::ResourceId ( const ResourceId )
default

◆ ResourceId() [4/4]

ResourceId::ResourceId ( ResourceId &&  )
default

◆ ~ResourceId()

ResourceId::~ResourceId ( )
default

Member Function Documentation

◆ GetData()

constexpr auto ResourceId::GetData ( ) const -> uint64_t
inlineconstexpr

获取资源数据

Returns
uint64_t 资源数据

Definition at line 91 of file resource_id.hpp.

91 {
92 return value_ & kDataMask;
93 }

◆ GetType()

constexpr auto ResourceId::GetType ( ) const -> ResourceType
inlineconstexpr

获取资源类型

Returns
ResourceType 资源类型

Definition at line 83 of file resource_id.hpp.

83 {
84 return static_cast<ResourceType>((value_ >> kTypeShift) & 0xFF);
85 }
ResourceType
资源类型枚举
Here is the caller graph for this function:

◆ GetTypeName()

constexpr auto ResourceId::GetTypeName ( ) const -> const char*
inlineconstexpr

获取类型名称(用于调试)

Returns
const char* 资源类型名称

Definition at line 99 of file resource_id.hpp.

99 {
101 }
constexpr auto GetType() const -> ResourceType
获取资源类型
constexpr auto GetResourceTypeName(ResourceType type) -> const char *
获取资源类型的字符串表示(用于调试)
Here is the call graph for this function:

◆ operator bool()

constexpr ResourceId::operator bool ( ) const
inlineexplicitconstexpr

检查是否为有效资源

Returns
bool 有效返回 true,无效返回 false

Definition at line 107 of file resource_id.hpp.

107 {
108 return GetType() != ResourceType::kNone;
109 }
@ kNone
无效资源
Here is the call graph for this function:

◆ operator uint64_t()

constexpr ResourceId::operator uint64_t ( ) const
inlineconstexpr

隐式转换到 uint64_t(用于存储和比较)

Returns
uint64_t 内部存储值

Definition at line 115 of file resource_id.hpp.

115{ return value_; }

◆ operator!=()

constexpr auto ResourceId::operator!= ( const ResourceId other) const -> bool
inlineconstexpr

不等比较操作符

Parameters
other另一个资源 ID
Returns
bool 不相等返回 true

Definition at line 131 of file resource_id.hpp.

131 {
132 return value_ != other.value_;
133 }

◆ operator=() [1/2]

auto ResourceId::operator= ( const ResourceId ) -> ResourceId &=default
default

◆ operator=() [2/2]

auto ResourceId::operator= ( ResourceId &&  ) -> ResourceId &=default
default

◆ operator==()

constexpr auto ResourceId::operator== ( const ResourceId other) const -> bool
inlineconstexpr

相等比较操作符

Parameters
other另一个资源 ID
Returns
bool 相等返回 true

Definition at line 122 of file resource_id.hpp.

122 {
123 return value_ == other.value_;
124 }

Member Data Documentation

◆ kDataMask

constexpr uint64_t ResourceId::kDataMask = 0x00FFFFFFFFFFFFFFULL
staticconstexprprivate

Definition at line 158 of file resource_id.hpp.

◆ kTypeMask

constexpr uint64_t ResourceId::kTypeMask = 0xFF00000000000000ULL
staticconstexprprivate

Definition at line 157 of file resource_id.hpp.

◆ kTypeShift

constexpr uint8_t ResourceId::kTypeShift = 56
staticconstexprprivate

Definition at line 156 of file resource_id.hpp.

◆ value_

uint64_t ResourceId::value_ {0}
private

内部存储的原始值

Definition at line 161 of file resource_id.hpp.

161{0};

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