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
 高7位为 nameLength,低25位为 dataSize
 

Detailed Description

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

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

Definition at line 544 of file database.hpp.

Constructor & Destructor Documentation

◆ KeyInfo()

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

Definition at line 553 of file database.hpp.

553 : raw_info(0)
554 {
555 BlockBoolUtil<MinWriteSize>::SetFlag(no_next_key, true);
556 BlockBoolUtil<MinWriteSize>::SetFlag(available_flag, true);
557 BlockBoolUtil<MinWriteSize>::SetFlag(uninit, true);
558 }
BlockBoolData< MinWriteSize > no_next_key
是否是最后一个键
Definition database.hpp:546
BlockBoolData< MinWriteSize > available_flag
该键是否有效
Definition database.hpp:547
BlockBoolData< MinWriteSize > uninit
该键是否未初始化
Definition database.hpp:548
uint32_t raw_info
高7位为 nameLength,低25位为 dataSize
Definition database.hpp:550

Member Function Documentation

◆ GetDataSize()

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

Definition at line 572 of file database.hpp.

572{ return raw_info & 0x01FFFFFF; }

◆ GetNameLength()

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

Definition at line 565 of file database.hpp.

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

◆ SetDataSize()

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

Definition at line 567 of file database.hpp.

568 {
569 raw_info = (raw_info & 0xFE000000) | (size & 0x01FFFFFF);
570 }

◆ SetNameLength()

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

Definition at line 560 of file database.hpp.

561 {
562 raw_info = (raw_info & 0x01FFFFFF) | ((len & 0x7F) << 25);
563 }

Field Documentation

◆ available_flag

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

该键是否有效

Definition at line 547 of file database.hpp.

◆ no_next_key

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

是否是最后一个键

Definition at line 546 of file database.hpp.

◆ raw_info

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

高7位为 nameLength,低25位为 dataSize

Definition at line 550 of file database.hpp.

◆ uninit

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

该键是否未初始化

Definition at line 548 of file database.hpp.


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