| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*************************************************************************
- 【文件名】 CellAUTOCREATE.h
- 【功能模块和目的】 流程节点自动创建辅助类头文件
- 【开发者及日期】 郑石诺 2015/01/24
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- class CCellBase;
- /*************************************************************************
- 【类名】 CCellAUTOCREATE
- 【功能】
- 【接口说明】 流程节点自动创建辅助类
- 【开发者及日期】 郑石诺 2015/01/24
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CCellAUTOCREATE
- {
- private:
- typedef CCellBase* (*pfnCreateCell)(void);
- public:
- CCellAUTOCREATE(const CString& a_Name, pfnCreateCell a_fn);
- ~CCellAUTOCREATE(void);
- private:
- friend class CCellBase;
- void __setList(void);
- CCellBase* __createCell(void);
- static CCellAUTOCREATE* fromName(const CString& a_Name);
- static CCellBase* createCell(const CString& a_Name);
- private:
- static CCellAUTOCREATE* ms_pHead;
- CCellAUTOCREATE* m_pNext;
- pfnCreateCell m_pfnCreate;
- CString m_Name;
- };
- #define DECLARE_CELL_AUTOCREATE \
- public: \
- static CCellAUTOCREATE ms_dynamicCreate; \
- static CCellBase* create(void); \
- #define IMPLEMENT_CELL_AUTOCREATE(classname, name) \
- CCellAUTOCREATE classname::ms_dynamicCreate(name, create); \
- CCellBase* classname::create(void) { return new classname; }
|