PMEMKV
1.3-git75.g7bf0122
This is the C++ documentation for PMEMKV.
|
Main pmemkv class, it provides functions to operate on data in database. More...
#include <libpmemkv.hpp>
Public Member Functions | |
db () noexcept | |
Default constructor with uninitialized database. More... | |
~db () | |
Default destructor. More... | |
db (const db &other)=delete | |
db (db &&other) noexcept | |
Move constructor. More... | |
db & | operator= (const db &other)=delete |
db & | operator= (db &&other) noexcept |
Move assignment operator. More... | |
status | open (const std::string &engine_name) noexcept |
Opens the pmemkv database without any configuration parameters. More... | |
status | open (const std::string &engine_name, config &&cfg) noexcept |
Opens the pmemkv database with specified config. More... | |
void | close () noexcept |
Closes pmemkv database. More... | |
status | count_all (std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db. More... | |
status | count_above (string_view key, std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than the given key. More... | |
status | count_equal_above (string_view key, std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than or equal to the given key. More... | |
status | count_equal_below (string_view key, std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are lower than or equal to the given key. More... | |
status | count_below (string_view key, std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are less than the given key. More... | |
status | count_between (string_view key1, string_view key2, std::size_t &cnt) noexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than the key1 and less than the key2. More... | |
status | get_all (get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db. More... | |
status | get_all (std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db. More... | |
status | get_above (string_view key, get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than the given key. More... | |
status | get_above (string_view key, std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than the given key. More... | |
status | get_equal_above (string_view key, get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than or equal to the given key. More... | |
status | get_equal_above (string_view key, std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than or equal to the given key. More... | |
status | get_equal_below (string_view key, get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are lower than or equal to the given key. More... | |
status | get_equal_below (string_view key, std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db, whose keys are lower than or equal to the given key. More... | |
status | get_below (string_view key, get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are lower than the given key. More... | |
status | get_below (string_view key, std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db, whose keys are less than the given key. More... | |
status | get_between (string_view key1, string_view key2, get_kv_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than the key1 and less than the key2. More... | |
status | get_between (string_view key1, string_view key2, std::function< get_kv_function > f) noexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than the key1 and less than the key2. More... | |
status | exists (string_view key) noexcept |
Checks existence of record with given key. More... | |
status | get (string_view key, get_v_callback *callback, void *arg) noexcept |
Executes (C-like) callback function for record with given key. More... | |
status | get (string_view key, std::function< get_v_function > f) noexcept |
Executes function for record with given key. More... | |
status | get (string_view key, std::string *value) noexcept |
Gets value copy of record with given key. More... | |
status | put (string_view key, string_view value) noexcept |
Inserts a key-value pair into pmemkv database. More... | |
status | remove (string_view key) noexcept |
Removes from database record with given key. More... | |
status | defrag (double start_percent=0, double amount_percent=100) |
Defragments approximately 'amount_percent' percent of elements in the database starting from 'start_percent' percent of elements. More... | |
std::string | errormsg () |
Returns a human readable string describing the last error. More... | |
Private Attributes | |
pmemkv_db * | _db |
Main pmemkv class, it provides functions to operate on data in database.
Database class for creating, opening and closing pmemkv's data file. It provides functions to write, read & remove data, count elements stored and check for existence of an element based on its key.
Note: It does not explicitly provide upper_bound/lower_bound functions. If you want to obtain an element(s) above or below the selected key, you can use pmem::kv::get_above() or pmem::kv::get_below(). See descriptions of these functions for details.
|
inlinenoexcept |
Default constructor with uninitialized database.
|
inline |
Default destructor.
Closes pmemkv database.
|
delete |
|
inlinenoexcept |
Move constructor.
Initializes database with another database. Ownership is being transferred to a class that move constructor was called on.
[in] | other | another database, to be moved from |
|
inlinenoexcept |
Closes pmemkv database.
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than the given key.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound of counting |
[out] | cnt | number of records in pmem::kv::db matching query |
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db.
[out] | cnt | number of records stored in pmem::kv::db. |
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are less than the given key.
Keys are sorted in order specified by a comparator.
[in] | key | sets the upper bound of counting |
[out] | cnt | number of records in pmem::kv::db matching query |
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than the key1 and less than the key2.
Keys are sorted in order specified by a comparator.
[in] | key1 | sets the lower bound of counting |
[in] | key2 | sets the upper bound of counting |
[out] | cnt | number of records in pmem::kv::db matching query |
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are greater than or equal to the given key.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound of counting |
[out] | cnt | number of records in pmem::kv::db matching query |
|
inlinenoexcept |
It returns number of currently stored elements in pmem::kv::db, whose keys are lower than or equal to the given key.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound of counting |
[out] | cnt | number of records in pmem::kv::db matching query |
|
inline |
Defragments approximately 'amount_percent' percent of elements in the database starting from 'start_percent' percent of elements.
[in] | start_percent | starting percent of elements to defragment from |
[in] | amount_percent | amount percent of elements to defragment |
|
inline |
Returns a human readable string describing the last error.
Even if this is a method from the db class, it can return the last error from some other class.
|
inlinenoexcept |
Checks existence of record with given key.
If record is present pmem::kv::status::OK is returned, otherwise pmem::kv::status::NOT_FOUND is returned. Other possible return values are described in pmem::kv::status.
[in] | key | record's key to query for in database |
|
inlinenoexcept |
Executes (C-like) callback function for record with given key.
If record is present and no error occurred, the function returns pmem::kv::status::OK. If record does not exist pmem::kv::status::NOT_FOUND is returned. Other possible return values are described in pmem::kv::status. Callback is called with the following parameters: pointer to a value, size of the value and arg specified by the user. This function is guaranteed to be implemented by all engines.
[in] | key | record's key to query for |
[in] | callback | function to be called for returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for record with given key.
If record is present and no error occurred the function returns pmem::kv::status::OK. If record does not exist pmem::kv::status::NOT_FOUND is returned.
[in] | key | record's key to query for |
[in] | f | function called for returned element, it is called with only one param - value (key is known) |
|
inlinenoexcept |
Gets value copy of record with given key.
In absence of any errors, pmem::kv::status::OK is returned. This function is guaranteed to be implemented by all engines.
[in] | key | record's key to query for |
[out] | value | stores returned copy of the data |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than the given key.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_above() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound for querying |
[in] | callback | function to be called for each returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than the given key.
Callback can stop iteration by returning non-zero value. In that case get_above() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound for querying |
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_all() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
[in] | callback | function to be called for every element stored in db |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db.
Callback can stop iteration by returning non-zero value. In that case get_all() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are lower than the given key.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_below() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the upper bound for querying |
[in] | callback | function to be called for each returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db, whose keys are less than the given key.
Callback can stop iteration by returning non-zero value. In that case get_below() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the upper bound for querying |
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than the key1 and less than the key2.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_between() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key1 | sets the lower bound for querying |
[in] | key2 | sets the upper bound for querying |
[in] | callback | function to be called for each returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than the key1 and less than the key2.
Callback can stop iteration by returning non-zero value. In that case get_between() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key1 | sets the lower bound for querying |
[in] | key2 | sets the upper bound for querying |
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are greater than or equal to the given key.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_equal_above() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound for querying |
[in] | callback | function to be called for each returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db, whose keys are greater than or equal to the given key.
Callback can stop iteration by returning non-zero value. In that case get_equal_above()* returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the lower bound for querying |
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Executes (C-like) callback function for every record stored in pmem::kv::db, whose keys are lower than or equal to the given key.
Arguments passed to the callback function are: pointer to a key, size of the key, pointer to a value, size of the value and arg specified by the user. Callback can stop iteration by returning non-zero value. In that case get_equal_below() returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the upper bound for querying |
[in] | callback | function to be called for each returned element |
[in] | arg | additional arguments to be passed to callback |
|
inlinenoexcept |
Executes function for every record stored in pmem::kv::db, whose keys are lower than or equal to the given key.
Callback can stop iteration by returning non-zero value. In that case get_equal_below()* returns pmem::kv::status::STOPPED_BY_CB. Returning 0 continues iteration.
Keys are sorted in order specified by a comparator.
[in] | key | sets the upper bound for querying |
[in] | f | function called for each returned element, it is called with params: key and value |
|
inlinenoexcept |
Opens the pmemkv database without any configuration parameters.
[in] | engine_name | name of the engine to work with |
Opens the pmemkv database with specified config.
[in] | engine_name | name of the engine to work with |
[in] | cfg | pmem::kv::config with parameters specified for the engine |
Move assignment operator.
Deletes previous database and replaces it with another database. Ownership is being transferred to a class that assign operator was called on.
[in] | other | another database, to be assigned from |
|
inlinenoexcept |
Inserts a key-value pair into pmemkv database.
This function is guaranteed to be implemented by all engines.
[in] | key | record's key; record will be put into database under its name |
[in] | value | data to be inserted into this new database record |
|
inlinenoexcept |
Removes from database record with given key.
This function is guaranteed to be implemented by all engines.
[in] | key | record's key to query for, to be removed |
|
private |