libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
LibXR::DatabaseRaw< MinWriteSize >::KeyInfo Struct Reference

键信息结构,存储键的元数据 (Structure containing key metadata). More...

Collaboration diagram for LibXR::DatabaseRaw< MinWriteSize >::KeyInfo:
[legend]

Public Member Functions

void SetNameLength (uint8_t len)
 
uint8_t GetNameLength () const
 
void SetDataSize (uint32_t size)
 
uint32_t GetDataSize () const
 

Data Fields

BlockBoolData< MinWriteSize > no_next_key
 是否是最后一个键
 
BlockBoolData< MinWriteSize > available_flag
 该键是否有效
 
BlockBoolData< MinWriteSize > uninit
 该键是否未初始化
 
uint32_t raw_info = 0
 高7位为 nameLength,低25位为 dataSize
 

Detailed Description

template<size_t MinWriteSize>
struct LibXR::DatabaseRaw< MinWriteSize >::KeyInfo

键信息结构,存储键的元数据 (Structure containing key metadata).

Definition at line 405 of file database.hpp.

Constructor & Destructor Documentation

◆ KeyInfo()

template<size_t MinWriteSize>
LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::KeyInfo ( )
inline

Definition at line 414 of file database.hpp.

415 {
416 BlockBoolUtil<MinWriteSize>::SetFlag(no_next_key, true);
417 BlockBoolUtil<MinWriteSize>::SetFlag(available_flag, true);
418 BlockBoolUtil<MinWriteSize>::SetFlag(uninit, true);
419 }
BlockBoolData< MinWriteSize > no_next_key
是否是最后一个键
Definition database.hpp:407
BlockBoolData< MinWriteSize > available_flag
该键是否有效
Definition database.hpp:408
BlockBoolData< MinWriteSize > uninit
该键是否未初始化
Definition database.hpp:409

Member Function Documentation

◆ GetDataSize()

template<size_t MinWriteSize>
uint32_t LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::GetDataSize ( ) const
inline

Definition at line 433 of file database.hpp.

433{ return raw_info & 0x01FFFFFF; }
uint32_t raw_info
高7位为 nameLength,低25位为 dataSize
Definition database.hpp:411

◆ GetNameLength()

template<size_t MinWriteSize>
uint8_t LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::GetNameLength ( ) const
inline

Definition at line 426 of file database.hpp.

426{ return (raw_info >> 25) & 0x7F; }

◆ SetDataSize()

template<size_t MinWriteSize>
void LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::SetDataSize ( uint32_t size)
inline

Definition at line 428 of file database.hpp.

429 {
430 raw_info = (raw_info & 0xFE000000) | (size & 0x01FFFFFF);
431 }

◆ SetNameLength()

template<size_t MinWriteSize>
void LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::SetNameLength ( uint8_t len)
inline

Definition at line 421 of file database.hpp.

422 {
423 raw_info = (raw_info & 0x01FFFFFF) | ((len & 0x7F) << 25);
424 }

Field Documentation

◆ available_flag

template<size_t MinWriteSize>
BlockBoolData<MinWriteSize> LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::available_flag

该键是否有效

Definition at line 408 of file database.hpp.

◆ no_next_key

template<size_t MinWriteSize>
BlockBoolData<MinWriteSize> LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::no_next_key

是否是最后一个键

Definition at line 407 of file database.hpp.

◆ raw_info

template<size_t MinWriteSize>
uint32_t LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::raw_info = 0

高7位为 nameLength,低25位为 dataSize

Definition at line 411 of file database.hpp.

◆ uninit

template<size_t MinWriteSize>
BlockBoolData<MinWriteSize> LibXR::DatabaseRaw< MinWriteSize >::KeyInfo::uninit

该键是否未初始化

Definition at line 409 of file database.hpp.


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