mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-02 01:04:13 +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
|
/// \brief Returns the minimal values size in bytes for specified values
|
||||||
/// mode.
|
/// mode.
|
||||||
static inline size_t value_min(value_mode) noexcept;
|
static inline size_t value_min(value_mode) noexcept;
|
||||||
|
|
||||||
/// \brief Returns the maximal value size in bytes for specified page size
|
/// \brief Returns the maximal value size in bytes for specified page size
|
||||||
/// and database flags.
|
/// and database flags.
|
||||||
static inline size_t value_max(intptr_t pagesize, MDBX_db_flags_t 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
|
/// \brief Returns the maximal value size in bytes for specified page size
|
||||||
/// and values mode.
|
/// and values mode.
|
||||||
static inline size_t value_max(const env &, value_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
|
/// \brief Returns the maximal write transaction size (i.e. limit for
|
||||||
/// summary volume of dirty pages) in bytes for specified page size.
|
/// summary volume of dirty pages) in bytes for specified page size.
|
||||||
static inline size_t transaction_size_max(intptr_t pagesize);
|
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));
|
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) {
|
inline size_t env::limits::transaction_size_max(intptr_t pagesize) {
|
||||||
const intptr_t result = mdbx_limits_txnsize_max(pagesize);
|
const intptr_t result = mdbx_limits_txnsize_max(pagesize);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user