参考链接:
http://pmem.io/2016/01/12/cpp-01.html
Part 0
有关之前 C 语言的 libpmemobj 库的目标是在不修改编译器的条件下实现持续性存储的所有功能,但是只能在低级软件和语言。
而 libpmemobj C++ 库是更高级的语言,减少错误并且具有更好的API。更多专注修改 structs 和 classes,而对函数共能只做简单修改。
Part 1
C 语言的 API 中存在的错误就是在事务操作中必须跟踪持久性内存变量的修改。
以vector example 为例子
pmem::obj::p 这个类不增加存储开销,但能够形成与C语言版本相同的 vector 结构体。在事务的操作中不需要再使用pmemobj_tx_add_range 函数。原因是:如果代码变得很复杂的时候在使用pmemobj_tx_add_range 函数时就会造成很多错误从而导致持久性问题。
Part 2
pmem::obj::persistent_ptr
使用 persistent_pt

本文档详细介绍了C++ bindings for libpmemobj的四个部分,包括其高级语言特性,如减少错误的API,以及如何利用pmem::obj::p简化事务操作。此外,讲解了persistent_ptr的使用,避免了C语言版本中的layout声明和宏定义。最后,通过链表队列的push和pop操作展示了C++方法在非易失性存储中的应用。
最低0.47元/天 解锁文章
478

被折叠的 条评论
为什么被折叠?



