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

75 lines
1.5 KiB
C++
Raw 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 PaiObjectRecycler.h
* @brief 数据树结点回收站当调用PaiObject的Delete函数后还对象并不会被立即释放而是会被放入该回收站该回收站会管理被删掉的对象的声明周期
* @date 2011-09-17
*/
#ifndef PAI_FRAME_IOBJECTMODEL_PAIOBJECTRECYCLER_H
#define PAI_FRAME_IOBJECTMODEL_PAIOBJECTRECYCLER_H
#include <QList>
#include <QObject>
#include "Turtle.h"
namespace pai
{
namespace objectmodel
{
class PaiObject;
}
}
namespace pai
{
namespace objectmodel
{
/**
* @class PaiObjectRecycler
* @brief 数据树结点回收站
*/
class PAI_OBJECTMODEL_EXPORT PaiObjectRecycler : public QObject
{
Q_OBJECT
public:
/**
* @brief 构造函数
*/
PaiObjectRecycler();
/**
* @brief 虚析构函数
*/
virtual ~PaiObjectRecycler();
/**
*@brief 将数据树上删除的结点放进回收站
*@param[in] pChild 被删除的孩子
*/
void Push(PaiObject *pChild);
/**
* @brief 获得当前回收站中的对象个数
* @return 当前回收站中的对象个数
*/
int GetObjectsCount() const;
private:
/**
*@brief 判断回收站中是否存在孩子结点
*@param[in] pChild 被删除的孩子
*/
bool IsExist(PaiObject *pChild);
/**
*@brief 清空回收站
*/
void Clear();
private:
QList< pai::objectmodel::PaiObject* > m_DeletedObjects; //回收站中对象列表
};
}
}
#endif ///< PAI_FRAME_IOBJECTMODEL_PAIOBJECTRECYCLER_H