PMDK C++ bindings
1.10.1
This is the C++ bindings documentation for PMDK's libpmemobj.
|
Implementation details. More...
Classes | |
struct | basic_contiguous_iterator |
Default non-const iterator which adds element to a transaction on every access. More... | |
class | concurrent_skip_list |
Persistent memory aware implementation of the concurrent skip list. More... | |
struct | contiguous_iterator |
Base class for iterators which satisfies RandomAccessIterator and operate on contiguous memory. More... | |
class | enumerable_thread_specific |
Class for storing thread local data. More... | |
struct | id_manager |
This structure is used for assigning unique thread ids so that those ids will be reused in case of thread exit. More... | |
struct | is_bidirectional_iterator |
Type trait to determine if a given parameter type satisfies requirements of BidirectionalIterator. More... | |
struct | is_forward_iterator |
Type trait to determine if a given parameter type satisfies requirements of ForwardIterator. More... | |
struct | is_input_iterator |
Type trait to determine if a given parameter type satisfies requirements of InputIterator. More... | |
struct | is_output_iterator |
Type trait to determine if a given parameter type satisfies requirements of OutputIterator. More... | |
struct | is_random_access_iterator |
Type trait to determine if a given parameter type satisfies requirements of RandomAccessIterator. More... | |
struct | range_snapshotting_iterator |
Non-const iterator which adds elements to a transaction in a bulk. More... | |
struct | temp_value |
Template class for caching objects based on constructor's variadic template arguments and LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE. More... | |
struct | temp_value< T, NoExcept, typename std::enable_if< NoExcept &&(sizeof(T)< LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE)>::type > |
Specialization for non-throwing constructors and objects smaller than LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE bytes. More... | |
struct | temp_value< T, NoExcept, typename std::enable_if<!NoExcept||(sizeof(T) >=LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE)>::type > |
Specialization for throwing constructors or objects greater than or equal to LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE bytes. More... | |
struct | thread_id_type |
RAII-style structure for holding thread id. More... | |
class | volatile_state |
Global key value store which allows persistent objects to use volatile memory. More... | |
Functions | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_copy_assignment (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type) |
Copy assignment implementation for allocator if propagate_on_container_copy_assignment == true_type. | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_copy_assignment (MyAlloc &, OtherAlloc &, std::false_type) |
Copy assignment implementation for allocator if propagate_on_container_copy_assignment == false_type. | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_move_assignment (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type) |
Move assignment implementation for allocator if propagate_on_container_move_assignment == true_type. | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_move_assignment (MyAlloc &, OtherAlloc &, std::false_type) |
Move assignment implementation for allocator if propagate_on_container_move_assignment == false_type. | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_swap (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type) |
Swap implementation for allocators if propagate_on_container_swap == true_type. | |
template<typename MyAlloc , typename OtherAlloc > | |
void | allocator_swap (MyAlloc &, OtherAlloc &, std::false_type) |
Swap implementation for allocators if propagate_on_container_swap == false_type. | |
uint64_t | next_pow_2 (uint64_t v) |
Round up to the next lowest power of 2. More... | |
uint64_t | next_pow_2 (uint32_t v) |
Round up to the next lowest power of 2. More... | |
template<typename Clock , typename Duration = typename Clock::duration> | |
timespec | timepoint_to_timespec (const std::chrono::time_point< Clock, Duration > &timepoint) |
Convert std::chrono::time_point to posix timespec. More... | |
template<typename T , typename Y > | |
bool | operator== (const persistent_pool_ptr< T > &lhs, const persistent_pool_ptr< Y > &rhs) noexcept |
Equality operator. More... | |
template<typename T , typename Y > | |
bool | operator!= (const persistent_pool_ptr< T > &lhs, const persistent_pool_ptr< Y > &rhs) noexcept |
Inequality operator. | |
template<typename T > | |
bool | operator!= (const persistent_pool_ptr< T > &lhs, std::nullptr_t) noexcept |
Inequality operator with nullptr. | |
template<typename T > | |
bool | operator!= (std::nullptr_t, const persistent_pool_ptr< T > &lhs) noexcept |
Inequality operator with nullptr. | |
template<typename T > | |
bool | operator== (const persistent_pool_ptr< T > &lhs, std::nullptr_t) noexcept |
Equality operator with nullptr. | |
template<typename T > | |
bool | operator== (std::nullptr_t, const persistent_pool_ptr< T > &lhs) noexcept |
Equality operator with nullptr. | |
std::string | errormsg (void) |
Return last libpmemobj error message as a std::string. | |
Implementation details.
It contains libpmemobj's implementation details, not needed in public headers. It is located within pmem namespace.
|
inline |
Round up to the next lowest power of 2.
Overload for uint32_t argument.
|
inline |
Round up to the next lowest power of 2.
Overload for uint64_t argument.
|
inlinenoexcept |
Equality operator.
This checks if underlying PMEMoids are equal.
timespec pmem::detail::timepoint_to_timespec | ( | const std::chrono::time_point< Clock, Duration > & | timepoint | ) |
Convert std::chrono::time_point to posix timespec.
[in] | timepoint | point in time to be converted. |