| 
    PMEMKV
    1.5.0-git49.g4c2663e
    
   This is the C++ documentation for PMEMKV. 
   | 
 
Holds configuration parameters for engines. More...
#include <libpmemkv.hpp>
Public Member Functions | |
| config () noexcept | |
| Default constructor with uninitialized config.  More... | |
| config (pmemkv_config *cfg) noexcept | |
| Creates config from pointer to pmemkv_config.  More... | |
| template<typename T > | |
| status | put_data (const std::string &key, const T *value, const std::size_t number=1) noexcept | 
| Puts binary data pointed by value, of type T, with count of elements to a config.  More... | |
| template<typename T > | |
| status | put_object (const std::string &key, T *value, void(*deleter)(void *)) noexcept | 
| Puts object pointed by value, of type T, with given destructor to a config.  More... | |
| template<typename T , typename D > | |
| status | put_object (const std::string &key, std::unique_ptr< T, D > object) noexcept | 
| Puts unique_ptr (to an object) to a config.  More... | |
| status | put_uint64 (const std::string &key, std::uint64_t value) noexcept | 
| Puts std::uint64_t value to a config.  More... | |
| status | put_int64 (const std::string &key, std::int64_t value) noexcept | 
| Puts std::int64_t value to a config.  More... | |
| status | put_string (const std::string &key, const std::string &value) noexcept | 
| Puts string value to a config.  More... | |
| status | put_size (std::uint64_t size) noexcept | 
| Puts size to a config, it's required when creating new database pool.  More... | |
| status | put_path (const std::string &path) noexcept | 
| Puts path (of a database pool) to a config, to open or create.  More... | |
| status | put_force_create (bool value) noexcept force_create_deprecated | 
| It's an alias for config::put_create_or_error_if_exists, kept for compatibility.  More... | |
| status | put_create_or_error_if_exists (bool value) noexcept | 
| Puts create_or_error_if_exists parameter to a config.  More... | |
| status | put_create_if_missing (bool value) noexcept | 
| Puts create_if_missing parameter to a config.  More... | |
| status | put_oid (PMEMoid *oid) noexcept | 
| Puts PMEMoid object to a config.  More... | |
| template<typename Comparator > | |
| status | put_comparator (Comparator &&comparator) | 
| Puts comparator object to a config.  More... | |
| template<typename T > | |
| status | get_data (const std::string &key, T *&value, std::size_t &number) const noexcept | 
| Gets object from a config item with key name and copies it into T object value.  More... | |
| template<typename T > | |
| status | get_object (const std::string &key, T *&value) const noexcept | 
| Gets binary data from a config item with key name and assigns pointer to T object value.  More... | |
| status | get_uint64 (const std::string &key, std::uint64_t &value) const noexcept | 
| Gets std::uint64_t value from a config item with key name.  More... | |
| status | get_int64 (const std::string &key, std::int64_t &value) const noexcept | 
| Gets std::int64_t value from a config item with key name.  More... | |
| status | get_string (const std::string &key, std::string &value) const noexcept | 
| Gets string value from a config item with key name.  More... | |
| pmemkv_config * | release () noexcept | 
| Similarly to std::unique_ptr::release it passes the ownership of underlying pmemkv_config variable and sets it to nullptr.  More... | |
Private Member Functions | |
| int | init () noexcept | 
| Initialization function for config.  More... | |
Private Attributes | |
| std::unique_ptr< pmemkv_config, decltype(&pmemkv_config_delete)> | config_ | 
Holds configuration parameters for engines.
It stores mappings of keys (strings) to values. A value can be: uint64_t, int64_t, string, binary data, pointer to an object (with accompanying deleter function).
It also delivers methods to store and read configuration items provided by a user. Once the configuration object is set (with all required parameters),pmemkv_open it can be passed to db::open() method.
List of options which are required by pmemkv database is specific to an engine. Every engine has documented all supported config parameters (please see libpmemkv(7) for details).
      
  | 
  inlinenoexcept | 
Default constructor with uninitialized config.
      
  | 
  inlineexplicitnoexcept | 
Creates config from pointer to pmemkv_config.
Ownership is transferred to config class.
      
  | 
  inlinenoexcept | 
Gets object from a config item with key name and copies it into T object value.
| [in] | key | The string representing config item's name. | 
| [out] | value | The pointer to data. | 
| [out] | count | The count of elements stored under reference. | 
      
  | 
  inlinenoexcept | 
Gets std::int64_t value from a config item with key name.
| [in] | key | The string representing config item's name. | 
| [out] | value | The std::int64_t value. | 
      
  | 
  inlinenoexcept | 
Gets binary data from a config item with key name and assigns pointer to T object value.
| [in] | key | The string representing config item's name. | 
| [out] | value | The pointer to object. | 
      
  | 
  inlinenoexcept | 
Gets string value from a config item with key name.
| [in] | key | The string representing config item's name. | 
| [out] | value | The string value. | 
      
  | 
  inlinenoexcept | 
Gets std::uint64_t value from a config item with key name.
| [in] | key | The string representing config item's name. | 
| [out] | value | The std::uint64_t value. | 
      
  | 
  inlineprivatenoexcept | 
Initialization function for config.
It's lazy initialized and called within all put functions.
      
  | 
  inline | 
Puts comparator object to a config.
Comparator must:
int compare(pmem::kv::string_view, pmem::kv::string_view)std::string name()| [in] | comparator | forwarding reference to a comparator | 
Example implementation of custom comparator:
And example usage (set in config and use while itarating over keys):
      
  | 
  inlinenoexcept | 
Puts create_if_missing parameter to a config.
This flag is mutually exclusive with create_or_error_if_exists (see config::put_create_or_error_if_exists). It works only with engines supporting this flag and it means: If true: pmemkv tries to open the pool and if that doesn't succeed it means there's (most likely) no pool to use, so it creates it. If false: pmemkv opens the pool, unless the path does not exist - then it fails. False by default.
      
  | 
  inlinenoexcept | 
Puts create_or_error_if_exists parameter to a config.
This flag is mutually exclusive with create_if_missing (see config::put_create_if_missing). It works only with engines supporting this flag and it means: If true: pmemkv creates the pool, unless it exists - then it fails. If false: pmemkv opens the pool, unless the path does not exist - then it fails. False by default.
      
  | 
  inlinenoexcept | 
Puts binary data pointed by value, of type T, with count of elements to a config.
Count parameter is useful for putting arrays of data.
| [in] | key | The string representing config item's name. | 
| [in] | value | The pointer to data. | 
| [in] | count | The count of elements stored under reference. | 
      
  | 
  inlinenoexcept | 
It's an alias for config::put_create_or_error_if_exists, kept for compatibility.
      
  | 
  inlinenoexcept | 
Puts std::int64_t value to a config.
| [in] | key | The string representing config item's name. | 
| [in] | value | The std::int64_t value. | 
      
  | 
  inlinenoexcept | 
Puts unique_ptr (to an object) to a config.
| [in] | key | The string representing config item's name. | 
| [in] | object | unique_ptr to an object. | 
      
  | 
  inlinenoexcept | 
Puts object pointed by value, of type T, with given destructor to a config.
| [in] | key | The string representing config item's name. | 
| [in] | value | The pointer to object. | 
| [in] | deleter | The object's destructor function. | 
      
  | 
  inlinenoexcept | 
Puts PMEMoid object to a config.
| [in] | oid | pointer (for details see libpmemobj(7)) which points to the engine data. If oid is null, engine will allocate new data, otherwise it will use existing one. | 
      
  | 
  inlinenoexcept | 
Puts path (of a database pool) to a config, to open or create.
| [in] | path | to a database file or to a poolset file (see poolset(5) for details). Note that when using poolset file, size should be 0. | 
      
  | 
  inlinenoexcept | 
Puts size to a config, it's required when creating new database pool.
| [in] | size | of the database in bytes. | 
      
  | 
  inlinenoexcept | 
Puts string value to a config.
| [in] | key | The string representing config item's name. | 
| [in] | value | The string value. | 
      
  | 
  inlinenoexcept | 
Puts std::uint64_t value to a config.
| [in] | key | The string representing config item's name. | 
| [in] | value | The std::uint64_t value. | 
      
  | 
  inlinenoexcept | 
Similarly to std::unique_ptr::release it passes the ownership of underlying pmemkv_config variable and sets it to nullptr.
      
  | 
  private |