|
| pool () noexcept=default |
| Defaulted constructor.
|
|
| pool (const pool &) noexcept=default |
| Defaulted copy constructor.
|
|
| pool (pool &&) noexcept=default |
| Defaulted move constructor.
|
|
pool & | operator= (const pool &) noexcept=default |
| Defaulted copy assignment operator.
|
|
pool & | operator= (pool &&) noexcept=default |
| Defaulted move assignment operator.
|
|
| ~pool () noexcept=default |
| Default destructor.
|
|
| pool (const pool_base &pb) noexcept |
| Defaulted copy constructor.
|
|
| pool (pool_base &&pb) noexcept |
| Defaulted move constructor.
|
|
persistent_ptr< T > | get_root () |
| Retrieves pool's root object. More...
|
|
| pool_base () noexcept |
| Defaulted constructor.
|
|
| pool_base (pmemobjpool *cpop) noexcept |
| Explicit constructor. More...
|
|
| pool_base (const pool_base &) noexcept=default |
| Defaulted copy constructor.
|
|
| pool_base (pool_base &&) noexcept=default |
| Defaulted move constructor.
|
|
pool_base & | operator= (const pool_base &) noexcept=default |
| Defaulted copy assignment operator.
|
|
pool_base & | operator= (pool_base &&) noexcept=default |
| Defaulted move assignment operator.
|
|
virtual | ~pool_base () noexcept=default |
| Default virtual destructor.
|
|
void | close () |
| Closes the pool. More...
|
|
void | persist (const void *addr, size_t len) noexcept |
| Performs persist operation on a given chunk of memory. More...
|
|
template<typename Y > |
void | persist (const p< Y > &prop) noexcept |
| Performs persist operation on a given pmem property. More...
|
|
template<typename Y > |
void | persist (const persistent_ptr< Y > &ptr) noexcept |
| Performs persist operation on a given persistent object. More...
|
|
void | flush (const void *addr, size_t len) noexcept |
| Performs flush operation on a given chunk of memory. More...
|
|
template<typename Y > |
void | flush (const p< Y > &prop) noexcept |
| Performs flush operation on a given pmem property. More...
|
|
template<typename Y > |
void | flush (const persistent_ptr< Y > &ptr) noexcept |
| Performs flush operation on a given persistent object. More...
|
|
void | drain (void) noexcept |
| Performs drain operation.
|
|
void * | memcpy_persist (void *dest, const void *src, size_t len) noexcept |
| Performs memcpy and persist operation on a given chunk of memory. More...
|
|
void * | memset_persist (void *dest, int c, size_t len) noexcept |
| Performs memset and persist operation on a given chunk of memory. More...
|
|
|
static pool< T > | open (const std::string &path, const std::string &layout) |
| Opens an existing object store memory pool. More...
|
|
static pool< T > | create (const std::string &path, const std::string &layout, std::size_t size=PMEMOBJ_MIN_POOL, mode_t mode=S_IWUSR|S_IRUSR) |
| Creates a new transactional object store pool. More...
|
|
static int | check (const std::string &path, const std::string &layout) |
| Checks if a given pool is consistent. More...
|
|
static pool_base | open (const std::string &path, const std::string &layout) |
| Opens an existing object store memory pool. More...
|
|
static pool_base | create (const std::string &path, const std::string &layout, std::size_t size=PMEMOBJ_MIN_POOL, mode_t mode=S_IWUSR|S_IRUSR) |
| Creates a new transactional object store pool. More...
|
|
static int | check (const std::string &path, const std::string &layout) noexcept |
| Checks if a given pool is consistent. More...
|
|
template<typename T>
class nvml::obj::pool< T >
PMEMobj pool class.
This class is the pmemobj pool handler. It provides basic primitives for operations on pmemobj pools. The template parameter defines the type of the root object within the pool. The typical usage example would be:
#include <fcntl.h>
void
pool_example()
{
struct root {
};
S_IWUSR | S_IRUSR);
pop.close();
auto root_obj = pop.get_root();
root_obj->some_variable = 3.2;
pop.persist(root_obj->some_variable);
pop.memset_persist(root_obj->some_array, 2,
sizeof(root_obj->some_array));
pop.memcpy_persist(root_obj->some_other_array, root_obj->some_array,
sizeof(root_obj->some_array));
pop.close();
}