📄 arsaction.cpp
字号:
#include "StdAfx.h"
#include "ARSAction.h"
deque <REGISTACTIONITEM> ARSAction::ms_dequeActionRegister;
int ARSAction::ms_iActionNum = 0;
ARSAction::ARSAction()
{
ms_iActionNum++;
}
DestoryActions();
ARSAction::~ARSAction()
{
ms_iActionNum--;
if (ms_iActionNum==0) {
}
}
bool ARSAction::RegistOneAction(char * name,POINTER_CREATEACTION_FUNC pfnAction)
{
int nLen;
for(int i=0;i<(int)ms_dequeActionRegister.size();i++)
{
nLen = strlen(ms_dequeActionRegister[i].name);
if (strncmp(ms_dequeActionRegister[i].name,name,nLen)==0 && name[nLen]=='\0')
{
return true;
}
}
REGISTACTIONITEM TmpActionItem ;
strcpy(TmpActionItem.name,name);
TmpActionItem.pfnCreateAction = pfnAction;
TmpActionItem.pAction = NULL;
ms_dequeActionRegister.push_back(TmpActionItem);
return true;
}
void ARSAction::DestoryActions()
{
for (int i=0;i<(int)ms_dequeActionRegister.size();i++) {
if (ms_dequeActionRegister[i].pAction) {
delete ms_dequeActionRegister[i].pAction;
ms_dequeActionRegister[i].pAction = NULL;
}
}
ms_dequeActionRegister.clear();
}
ARSAction* ARSAction::GetTheAction(char * name)
{
int nLen;
int j =ms_dequeActionRegister.size();
for(int i=0;i<(int)ms_dequeActionRegister.size();i++)
{
nLen = strlen(ms_dequeActionRegister[i].name);
if (strncmp(ms_dequeActionRegister[i].name,name,nLen)==0 && name[nLen]=='\0')
{
if (ms_dequeActionRegister[i].pAction == NULL)
ms_dequeActionRegister[i].pAction = (ms_dequeActionRegister[i].pfnCreateAction)();
return ms_dequeActionRegister[i].pAction;
}
}
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -