libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
raw.hpp
1#pragma once
2
3#include <cstdint>
4#include <cstring>
5
6#include "flash.hpp"
7#include "interface.hpp"
8
9namespace LibXR
10{
35template <size_t MinWriteSize>
36class DatabaseRaw : public Database
37{
47 static constexpr uint32_t FLASH_HEADER =
48 0x12345678 + LIBXR_DATABASE_VERSION;
58 static constexpr uint32_t CHECKSUM_BYTE = 0x9abcedf0;
60 // 存储布局定义:块角色、位图编码、键头与块头。
61 // Storage layout definitions: block roles, bitmap encodings, key headers,
62 // and block headers.
63#include "layout.hpp"
64
76
81 uint32_t block_size_;
82
91 uint8_t write_buffer_[MinWriteSize];
92
93 // 底层 Flash 读写辅助:按最小写入单元对齐、补齐、复制。
94 // Low-level Flash I/O helpers: minimum-write-unit alignment, tail padding,
95 // and raw copying.
96#include "flash_io.hpp"
97
98 // 块级语义:初始化、校验、失效、已用空间计算和块间复制。
99 // Block-level semantics: initialization, validation, invalidation,
100 // used-space accounting, and block-to-block copying.
101#include "block_ops.hpp"
102
103 // 键级语义:查找、追加、逻辑更新、条目地址计算。
104 // Key-level semantics: lookup, append, logical replacement, and entry
105 // address calculations.
106#include "key_ops.hpp"
107
112 public:
113 // 对外生命周期与主流程:构造、初始化、读写、恢复、回收。
114 // Public lifecycle and main flow: construction, initialization, read/write,
115 // restore, and recycle.
116#include "lifecycle.hpp"
117};
118
119} // namespace LibXR
数据库接口,提供键值存储和管理功能 (Database interface providing key-value storage and management).
Definition interface.hpp:24
适用于最小写入单元受限的 Flash 存储的数据库实现 (Database implementation for Flash storage with minimum write unit restri...
Definition raw.hpp:37
static constexpr uint32_t FLASH_HEADER
当前 raw 后端使用的块头签名 / Block-header signature used by the current raw backend
Definition raw.hpp:47
uint32_t block_size_
当前主块和备份块各自占用的物理块大小 / Physical block size occupied by each of the main and backup blocks
Definition raw.hpp:81
static constexpr uint32_t CHECKSUM_BYTE
当前 raw 后端使用的块尾校验常量 / Trailing checksum constant used by the current raw backend
Definition raw.hpp:58
LIBXR_PACKED_END size_t recycle_threshold_
查找时触发回收的失效键阈值 / Tombstone threshold that triggers recycle during lookup
Definition raw.hpp:69
Flash & flash_
当前后端绑定的 Flash 设备引用 / Reference to the Flash device bound to this backend
Definition raw.hpp:75
uint8_t write_buffer_[MinWriteSize]
复用的最小写入单元临时缓冲区 / Reused scratch buffer sized to one minimum write unit
Definition raw.hpp:91
Abstract base class representing a flash memory interface. 抽象基类,表示闪存接口。
Definition flash.hpp:19
LibXR 命名空间
Definition ch32_can.hpp:14
static constexpr uint16_t LIBXR_DATABASE_VERSION
数据库存储格式版本号 (Database storage-format version).
Definition interface.hpp:17