logplus/Workflow/WFEngine/ObjectModel/ObjectModelBase/include/PaiVirtualObject.h
2026-01-16 17:18:41 +08:00

75 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @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