本文整理汇总了C++中CInterface::SMT_GetXDHandleRecorder方法的典型用法代码示例。如果您正苦于以下问题:C++ CInterface::SMT_GetXDHandleRecorder方法的具体用法?C++ CInterface::SMT_GetXDHandleRecorder怎么用?C++ CInterface::SMT_GetXDHandleRecorder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CInterface
的用法示例。
在下文中一共展示了CInterface::SMT_GetXDHandleRecorder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SMT_StartUpRecordThread
UINT SMT_StartUpRecordThread( LPVOID pParam )
{
char sErrMsg[256];
char sBakPath[256];
char sYearMonth[20];
XDHANDLE nHandler=NULL;
CData cData;
memset(sErrMsg, 0,sizeof sErrMsg);
memset(sBakPath, 0,sizeof sBakPath);
memset(sYearMonth,0,sizeof sYearMonth);
//创建记录源文件备份的目录
strcpy(sBakPath,((CSmartCommunicationDlg*)pParam)->m_DealPath);
strcat(sBakPath,"\\Bak");
CreateDirectory(sBakPath,NULL);
try
{
To_Start:
//从连接池中获取一个连接
while(g_StartFlag )
{
if( (nHandler=g_CInterface.SMT_GetXDHandleRecorder())!=NULL) break;
Sleep(1000);
}
memset(sErrMsg, 0,sizeof sErrMsg );
memset(sYearMonth,0,sizeof sYearMonth);
//查询上月是否还有数据文件,若有则移到上传目录下
memcpy(sErrMsg,cData.GetSysTime(),6);
sprintf(sYearMonth,"%ld",atol(sErrMsg)-1);
((CSmartCommunicationDlg*)pParam)->SMT_ChnagLinkFileToUpFile(sYearMonth);
while(g_StartFlag )
{
//定时上传记录到金仕达
if(! ((CSmartCommunicationDlg*)pParam)->SMT_UpBeforeFile(nHandler) )
{
Sleep(500);
if( !g_CInterface.m_bConnectStatus )
{
g_CInterface.SMT_SetXDHandleFree(nHandler);
goto To_Start;
}
}
memset(sYearMonth,0,sizeof sYearMonth);
memcpy(sYearMonth,cData.GetSysTime(),6);
//定时将各个链路产生的数据文件进行转移到上传记录的目录下
if( !((CSmartCommunicationDlg*)pParam)->SMT_ChnagLinkFileToUpFile(sYearMonth) )
{
//每半分钟查询一下是否有需要上传的文件记录
for( int i=0; i<5*5; i++ )
{
Sleep(g_IniFilePara.lUpRecordWaitTime/5);
if( !g_StartFlag ) break;
}
}
}
}
catch (...)
{
memset(sErrMsg,0,sizeof sErrMsg);
strcpy(sErrMsg,"上传交易记录的线程异常,前置停止运行");
((CSmartCommunicationDlg*)pParam)->WriteLog(sErrMsg);
((CSmartCommunicationDlg*)pParam)->OnButtonStop();
MessageBox(NULL,sErrMsg,"严重警告",MB_OK);
}
return 0;
}