mirror of
https://github.com/isar/libmdbx.git
synced 2024-12-30 02:24:14 +08:00
mdbx++: добавление env::limits::pairsize4page_max()
и env::limits::valsize4page_max()
.
This commit is contained in:
parent
c3dd60fcb6
commit
25ab65b470
80
mdbx.h++
80
mdbx.h++
@ -3177,6 +3177,7 @@ public:
|
||||
/// \brief Returns the minimal values size in bytes for specified values
|
||||
/// mode.
|
||||
static inline size_t value_min(value_mode) noexcept;
|
||||
|
||||
/// \brief Returns the maximal value size in bytes for specified page size
|
||||
/// and database flags.
|
||||
static inline size_t value_max(intptr_t pagesize, MDBX_db_flags_t flags);
|
||||
@ -3189,6 +3190,35 @@ public:
|
||||
/// \brief Returns the maximal value size in bytes for specified page size
|
||||
/// and values mode.
|
||||
static inline size_t value_max(const env &, value_mode);
|
||||
|
||||
/// \brief Returns maximal size of key-value pair to fit in a single page
|
||||
/// for specified size and database flags.
|
||||
static inline size_t pairsize4page_max(intptr_t pagesize,
|
||||
MDBX_db_flags_t flags);
|
||||
/// \brief Returns maximal size of key-value pair to fit in a single page
|
||||
/// for specified page size and values mode.
|
||||
static inline size_t pairsize4page_max(intptr_t pagesize, value_mode);
|
||||
/// \brief Returns maximal size of key-value pair to fit in a single page
|
||||
/// for given environment and database flags.
|
||||
static inline size_t pairsize4page_max(const env &, MDBX_db_flags_t flags);
|
||||
/// \brief Returns maximal size of key-value pair to fit in a single page
|
||||
/// for specified page size and values mode.
|
||||
static inline size_t pairsize4page_max(const env &, value_mode);
|
||||
|
||||
/// \brief Returns maximal data size in bytes to fit in a leaf-page or
|
||||
/// single overflow/large-page for specified size and database flags.
|
||||
static inline size_t valsize4page_max(intptr_t pagesize,
|
||||
MDBX_db_flags_t flags);
|
||||
/// \brief Returns maximal data size in bytes to fit in a leaf-page or
|
||||
/// single overflow/large-page for specified page size and values mode.
|
||||
static inline size_t valsize4page_max(intptr_t pagesize, value_mode);
|
||||
/// \brief Returns maximal data size in bytes to fit in a leaf-page or
|
||||
/// single overflow/large-page for given environment and database flags.
|
||||
static inline size_t valsize4page_max(const env &, MDBX_db_flags_t flags);
|
||||
/// \brief Returns maximal data size in bytes to fit in a leaf-page or
|
||||
/// single overflow/large-page for specified page size and values mode.
|
||||
static inline size_t valsize4page_max(const env &, value_mode);
|
||||
|
||||
/// \brief Returns the maximal write transaction size (i.e. limit for
|
||||
/// summary volume of dirty pages) in bytes for specified page size.
|
||||
static inline size_t transaction_size_max(intptr_t pagesize);
|
||||
@ -4882,6 +4912,56 @@ inline size_t env::limits::value_max(const env &env, value_mode mode) {
|
||||
return value_max(env, MDBX_db_flags_t(mode));
|
||||
}
|
||||
|
||||
inline size_t env::limits::pairsize4page_max(intptr_t pagesize,
|
||||
MDBX_db_flags_t flags) {
|
||||
const intptr_t result = mdbx_limits_pairsize4page_max(pagesize, flags);
|
||||
if (result < 0)
|
||||
MDBX_CXX20_UNLIKELY error::throw_exception(MDBX_EINVAL);
|
||||
return static_cast<size_t>(result);
|
||||
}
|
||||
|
||||
inline size_t env::limits::pairsize4page_max(intptr_t pagesize,
|
||||
value_mode mode) {
|
||||
return pairsize4page_max(pagesize, MDBX_db_flags_t(mode));
|
||||
}
|
||||
|
||||
inline size_t env::limits::pairsize4page_max(const env &env,
|
||||
MDBX_db_flags_t flags) {
|
||||
const intptr_t result = mdbx_env_get_pairsize4page_max(env, flags);
|
||||
if (result < 0)
|
||||
MDBX_CXX20_UNLIKELY error::throw_exception(MDBX_EINVAL);
|
||||
return static_cast<size_t>(result);
|
||||
}
|
||||
|
||||
inline size_t env::limits::pairsize4page_max(const env &env, value_mode mode) {
|
||||
return pairsize4page_max(env, MDBX_db_flags_t(mode));
|
||||
}
|
||||
|
||||
inline size_t env::limits::valsize4page_max(intptr_t pagesize,
|
||||
MDBX_db_flags_t flags) {
|
||||
const intptr_t result = mdbx_limits_valsize4page_max(pagesize, flags);
|
||||
if (result < 0)
|
||||
MDBX_CXX20_UNLIKELY error::throw_exception(MDBX_EINVAL);
|
||||
return static_cast<size_t>(result);
|
||||
}
|
||||
|
||||
inline size_t env::limits::valsize4page_max(intptr_t pagesize,
|
||||
value_mode mode) {
|
||||
return valsize4page_max(pagesize, MDBX_db_flags_t(mode));
|
||||
}
|
||||
|
||||
inline size_t env::limits::valsize4page_max(const env &env,
|
||||
MDBX_db_flags_t flags) {
|
||||
const intptr_t result = mdbx_env_get_valsize4page_max(env, flags);
|
||||
if (result < 0)
|
||||
MDBX_CXX20_UNLIKELY error::throw_exception(MDBX_EINVAL);
|
||||
return static_cast<size_t>(result);
|
||||
}
|
||||
|
||||
inline size_t env::limits::valsize4page_max(const env &env, value_mode mode) {
|
||||
return valsize4page_max(env, MDBX_db_flags_t(mode));
|
||||
}
|
||||
|
||||
inline size_t env::limits::transaction_size_max(intptr_t pagesize) {
|
||||
const intptr_t result = mdbx_limits_txnsize_max(pagesize);
|
||||
if (result < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user