PMDK C++ bindings  1.13.0-git23.gf49772ac
This is the C++ bindings documentation for PMDK's libpmemobj.
Classes | Functions
pmem::detail Namespace Reference

Implementation details. More...

Classes

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...
 
struct  range_snapshotting_iterator
 Non-const iterator which adds elements to a transaction in a bulk. More...
 
struct  basic_contiguous_iterator
 Default non-const iterator which adds element to a transaction on every access. More...
 
class  ebr
 Epoch-based reclamation (EBR). 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  thread_id_type
 RAII-style structure for holding thread id. More...
 
class  enumerable_thread_specific
 Class for storing thread local data. More...
 
struct  is_output_iterator
 Type trait to determine if a given parameter type satisfies requirements of OutputIterator. More...
 
struct  is_input_iterator
 Type trait to determine if a given parameter type satisfies requirements of InputIterator. More...
 
struct  is_forward_iterator
 Type trait to determine if a given parameter type satisfies requirements of ForwardIterator. More...
 
struct  is_bidirectional_iterator
 Type trait to determine if a given parameter type satisfies requirements of BidirectionalIterator. More...
 
struct  is_random_access_iterator
 Type trait to determine if a given parameter type satisfies requirements of RandomAccessIterator. More...
 
class  self_relative_ptr_base_impl
 self_relative_ptr base template class More...
 
class  self_relative_accessor
 Static class accessor to self_relative_ptr_base. More...
 
class  volatile_state
 Global key value store which allows persistent objects to use volatile memory. More...
 
struct  can_do_snapshot< std::atomic< obj::experimental::self_relative_ptr< T > > >
 can_do_snapshot atomic specialization for self_relative_ptr. More...
 
struct  can_do_snapshot
 A structure that checks if it is possible to snapshot the specified memory. More...
 
class  transaction_base
 Common functionality for basic_transaction and flat_transaction. 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.
 

Detailed Description

Implementation details.

It contains libpmemobj's implementation details, not needed in public headers. It is located within pmem namespace.

Function Documentation

◆ next_pow_2() [1/2]

uint64_t pmem::detail::next_pow_2 ( uint32_t  v)
inline

Round up to the next lowest power of 2.

Overload for uint32_t argument.

◆ next_pow_2() [2/2]

uint64_t pmem::detail::next_pow_2 ( uint64_t  v)
inline

Round up to the next lowest power of 2.

Overload for uint64_t argument.

◆ operator==()

template<typename T , typename Y >
bool pmem::detail::operator== ( const persistent_pool_ptr< T > &  lhs,
const persistent_pool_ptr< Y > &  rhs 
)
inlinenoexcept

Equality operator.

This checks if underlying PMEMoids are equal.

◆ timepoint_to_timespec()

template<typename Clock , typename Duration = typename Clock::duration>
timespec pmem::detail::timepoint_to_timespec ( const std::chrono::time_point< Clock, Duration > &  timepoint)

Convert std::chrono::time_point to posix timespec.

Parameters
[in]timepointpoint in time to be converted.
Returns
converted timespec structure.