PMDK C++ bindings
1.13.0-git107.g7e59f08f
This is the C++ bindings documentation for PMDK's libpmemobj.
|
Non-const iterator which adds elements to a transaction in a bulk. More...
#include <libpmemobj++/container/detail/contiguous_iterator.hpp>
Public Types | |
using | iterator_category = std::random_access_iterator_tag |
using | value_type = T |
using | difference_type = std::ptrdiff_t |
using | reference = T & |
using | pointer = T * |
using | base_type = contiguous_iterator< range_snapshotting_iterator< T >, reference, pointer > |
Public Member Functions | |
range_snapshotting_iterator (pointer ptr=nullptr, pointer data=nullptr, std::size_t size=0, std::size_t snapshot_size=1) | |
Constructor taking pointer to data, pointer to the beginning of the array and snapshot_size. | |
operator const T * () const | |
Conversion operator to const T*. | |
reference | operator[] (std::ptrdiff_t n) |
Element access operator. More... | |
T & | operator* () const |
Dereference operator. | |
T * | operator-> () const |
Arrow operator. | |
range_snapshotting_iterator< T > & | operator++ () |
Prefix increment operator. | |
range_snapshotting_iterator< T > | operator++ (int) |
Postfix increment operator. | |
range_snapshotting_iterator< T > & | operator-- () |
Prefix decrement operator. | |
range_snapshotting_iterator< T > | operator-- (int) |
Postfix decrement operator. | |
range_snapshotting_iterator< T > & | operator+= (std::ptrdiff_t n) |
Addition assignment operator. | |
range_snapshotting_iterator< T > & | operator-= (std::ptrdiff_t n) |
Subtraction assignment operator. | |
range_snapshotting_iterator< T > | operator+ (std::ptrdiff_t n) const |
Addition operator. | |
range_snapshotting_iterator< T > | operator- (std::ptrdiff_t n) const |
Subtraction operator overload for integral type. | |
T * | get_ptr () const |
Protected Member Functions | |
void | change_by (std::ptrdiff_t n) |
Protected Attributes | |
T * | ptr |
Friends | |
template<typename Iterator , typename Reference , typename Pointer > | |
struct | contiguous_iterator |
void | swap (range_snapshotting_iterator &lhs, range_snapshotting_iterator &rhs) |
Non-member swap function. | |
Non-const iterator which adds elements to a transaction in a bulk.
This is done by dividing underlying array into ranges of specified (snapshot_size) size. If iterator is incremented/decremented/etc. so that it is moved to another range, this new range is added to a transaction.
For example, let's assume snapshot_size = 2, N = 6. This gives us: 0 1 | 2 3 | 4 5
If iterator is moved from 1 to 3, that means it is now in another range, and that range must be added to a transaction (elements 2 and 3).
|
inline |
Element access operator.
Adds element to a transaction.