C++ bindings for libpmemobj (part 5) - make_persistent

C++ bindings for libpmemobj (part 5) - make_persistent

One of the most important features of the C++ bindings to libpmemobj is the persistent_ptr smart pointer template. While using it is fairly straightforward, the allocation and object construction with the use of the C API is hard to get right. So like it’s C++ standard’s counterparts, it …

Read More
C++ bindings for libpmemobj (part 4) - pool handle wrapper

C++ bindings for libpmemobj (part 4) - pool handle wrapper

One of the necessary steps in developing the C++ libpmemobj bindings was the introduction of an abstraction of the C pool handle. We decided to do a very simple hierarchy where the pool template inherits from a generic pool_base. This was necessary to be able to have functions/methods which do not …

Read More
C++ bindings for libpmemobj (part 0)

C++ bindings for libpmemobj (part 0)

Our goal for the C pmemobj library was to make a fully featured implementation of persistent memory programming model without modifying the compiler. It’s meant for authors of very low-level system software and language creators. It’s not particularly pretty nor easy to use. The amount …

Read More
C++ bindings for libpmemobj (part 1) - pmem resident variables

C++ bindings for libpmemobj (part 1) - pmem resident variables

One of the biggest hurdles and error prone things about our C API is that the user has to manually keep track of modifications to the persistent memory resident variables while in a transaction. A special semi-transparent template property class has been implemented to automatically add variable …

Read More
C++ bindings for libpmemobj (part 2) - persistent smart pointer

C++ bindings for libpmemobj (part 2) - persistent smart pointer

In our C API the programmer has to deal with custom pointers represented by the PMEMoid structure. Thanks to some macro magic we made it so that those PMEMoids are somewhat usable. C++ allows us to evolve this concept. pmem::obj::persistent_ptr Almost everyone who ever touched a C++ code knows the …

Read More