75 lines
2.0 KiB
C
75 lines
2.0 KiB
C
|
|
/**
|
|||
|
|
* @file PaiVirtualObject.h
|
|||
|
|
* @brief 该类对象不保存在数据库,将自动赋予虚拟DBID
|
|||
|
|
* @date 2012-05-15
|
|||
|
|
*/
|
|||
|
|
#ifndef PAI_FRAME_PIOBJECTMODEL_PAIVIRTUALOBJECT_H
|
|||
|
|
#define PAI_FRAME_PIOBJECTMODEL_PAIVIRTUALOBJECT_H
|
|||
|
|
|
|||
|
|
#include "PaiObject.h"
|
|||
|
|
#include "Turtle.h"
|
|||
|
|
|
|||
|
|
namespace pai
|
|||
|
|
{
|
|||
|
|
namespace objectmodel
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* @class PaiVirtualObject
|
|||
|
|
* @brief 该类对象不保存在数据库,将自动赋予虚拟DBID
|
|||
|
|
*/
|
|||
|
|
class PAI_OBJECTMODEL_EXPORT PaiVirtualObject: public PaiObject
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
DECLARE_PAI_OBJECT(PaiVirtualObject, "{8ed66593-743e-43dc-9b11-cf548a0d129d}")
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] pParent 父对象指针
|
|||
|
|
*/
|
|||
|
|
PaiVirtualObject(PaiObject *pParent = NULL);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 虚析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~PaiVirtualObject();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 获得父节点的DBID
|
|||
|
|
* @return 父节点DBID
|
|||
|
|
*/
|
|||
|
|
long long GetParentDBID() const;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 加载DBID为dbid的数据,不加载孩子
|
|||
|
|
* @param[in] dbid 需要加载对象DBID
|
|||
|
|
* @return 是否加载成功
|
|||
|
|
* @note 该函数在虚对象下无意义,因为无需加载,此处仅为防止抛出异常
|
|||
|
|
*/
|
|||
|
|
virtual bool Load(const long long dbid);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 克隆参数对象
|
|||
|
|
* @param[in] srcObject 源对象
|
|||
|
|
* @note 该函数在基类不会抛出异常,因需对象一般不能克隆,因此此处来抛出异常,防止出错
|
|||
|
|
*/
|
|||
|
|
virtual void Clone(const PaiObject & srcObject);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 生成新的虚拟DBID
|
|||
|
|
* @return 新的虚拟DBID
|
|||
|
|
*/
|
|||
|
|
static long long GenerateVirtualDBID();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
/**
|
|||
|
|
* @note 某些节点不是在数据库保存的,但这时也许要一个唯一DBID来进行查询该对象,
|
|||
|
|
* 对此类对象用该变量计数来赋予一个唯一的虚拟DBID,计数从 -1 开始,依次递减,该类定义为0.
|
|||
|
|
*/
|
|||
|
|
static long long m_VirtualDBIDCounter; ///< 虚拟DBID
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif ///<PAI_FRAME_PIOBJECTMODEL_PAIVIRTUALOBJECT_H
|