mirror of
https://github.com/isar/libmdbx.git
synced 2025-08-02 22:54:44 +08:00
32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
/// \copyright SPDX-License-Identifier: Apache-2.0
|
|
/// \author Леонид Юрьев aka Leonid Yuriev <leo@yuriev.ru> \date 2015-2025
|
|
|
|
#pragma once
|
|
|
|
#include "essentials.h"
|
|
|
|
typedef struct walk_tbl {
|
|
MDBX_val name;
|
|
tree_t *internal, *nested;
|
|
} walk_tbl_t;
|
|
|
|
typedef int walk_func(const size_t pgno, const unsigned number, void *const ctx, const int deep,
|
|
const walk_tbl_t *table, const size_t page_size, const page_type_t page_type,
|
|
const MDBX_error_t err, const size_t nentries, const size_t payload_bytes,
|
|
const size_t header_bytes, const size_t unused_bytes);
|
|
|
|
typedef enum walk_options { dont_check_keys_ordering = 1 } walk_options_t;
|
|
|
|
MDBX_INTERNAL int walk_pages(MDBX_txn *txn, walk_func *visitor, void *user, walk_options_t options);
|
|
|
|
typedef struct walk_ctx {
|
|
void *userctx;
|
|
walk_options_t options;
|
|
int deep;
|
|
walk_func *visitor;
|
|
MDBX_txn *txn;
|
|
MDBX_cursor *cursor;
|
|
} walk_ctx_t;
|
|
|
|
MDBX_INTERNAL int walk_tbl(walk_ctx_t *ctx, walk_tbl_t *tbl);
|