StupidBeauty
Read times:760Posted at:Tue Dec 17 20:33:56 2013
- no title specified

Wt 3.3.1文档翻译:Wt::Dbo::ptr< C >类模板参考,Wt::Dbo::ptr< C > Class Template Reference

详细说明

template<class C>
class Wt::Dbo::ptr< C >

这是一个智能指针,指向一个数据库对象。

这个智能指针类,实现了一个指向数据库对象的带引用计数的共享指针,并且还会跟踪对象的内存中副本和数据库中副本之间的同步状态。当妳要引用一个数据库对象时,应当永远使用这个指针类。

不像传统的C++数据结构,那些被映射到数据库表的类之间并没有清晰的从属关系。因此,传统的基于从属关系的内存分配/释放手段对于数据库类来说并不十分好用。

一个指针可能指向一个瞬时transient)对象或指向一个已持久化的persisted)对象。对于一个已持久化的对象,在数据库中有它的一个相应的副本,而一个瞬时对象只存在于内存中。要将一个新对象持久化,就使用Session::add()。要将一个已持久化的对象变成瞬时状态的,则使用remove()

与传统的智能指针不同的是,这个指针在默认情况下只允许以只读方式访问到底层的对象。要想修改该对象,妳应当显式地使用modify()。这会将底层的对象标记为脏的dirty),进而将它加入到等待与数据库进行同步的对象队列中。

这个指针类提供了一系列的方法,可用于处理对应对象的持久化状态:

  • •. id(): 返回该对象在数据库中的编号(id)

  • •. flush(): 强制将该对象同步到数据库中

  • •. remove(): 从底层数据库中删除该对象

  • •. reread(): 从数据库中重新读入该对象的副本

  • •. purge(): 清除掉(purges)某个不脏(non-dirty)的对象的瞬时(transient)副本。

构造函数及析构函数文档

template<class C>

Wt::Dbo::ptr< C >::ptr

(

C *

obj = 0)

创建一个新的指针。

如果 obj 不为0,则,这个指针会指向当前新创建的未持久化的对象。使用 Session::add()来将新创建的对象持久化。

希拉里

隐形眼镜

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands