123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include "FrmCommLogF.h"
- #include "FrmSysLogF.h"
- #include "VMSCommLibF.h"
- #pragma hdrstop
- #include "LogThreadF.h"
- #pragma package(smart_init)
- TLogThread *LogThread = NULL;
- //---------------------------------------------------------------------------
- TLogThread::TLogThread()
- {
- FPnlState = NULL;
- FTmrDb = NULL;
- }
- //---------------------------------------------------------------------------
- TLogThread::~TLogThread()
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TLogThread::updateLedColor(TColor AColor)
- {
- try {
- if (FPnlState) {
- PostMessage((HWND)g_AppCfg.lMainWinHandle, WM_PANEL_REFRESH, 0, (LPARAM)AColor);
- }
- } catch(Exception &e) {}
- }
- //---------------------------------------------------------------------------
- DWORD __fastcall TLogThread::Process(LPVOID AParam)
- {
- IPC_LOG_MESSAGE *pLog;
- DWORD dwJob;
- TMessage Msg;
- MSG qMsg;
- TITSLog *pLogObj;
- TCDSCtlr *pCDSCtlr;
- while(!IsTerm() && !g_AppCfg.bThrExit)
- {
- updateLedColor(clGreen);
- if (!g_logQ.PopBlocking(dwJob))
- {
- continue;
- }
- if (dwJob == Q_CLOSE)
- {
- break;
- }
- else
- if (dwJob == Q_TICK)
- {
- updateLedColor(clRed);
- continue;
- }
- updateLedColor(clLime);
- pLog = (IPC_LOG_MESSAGE*)dwJob;
- Msg.WParam = (int)pLog;
- pLogObj = (TITSLog*)pLog->Obj;
- if (pLogObj && pLog->Write)
- {
- pLogObj->LogWrite(NULL, pLog->Kind, pLog->Msg);
- }
- try {
- if (pLog->Target == log_sys)
- {
- if (FrmSysLog && !FrmSysLog->FPause)
- {
- FrmSysLog->OnWMLogDisplayMessage(Msg);
- }
- if (from_srvTcp == pLog->From || from_cliTcp == pLog->From)
- {
- if (FrmCommLog)
- {
- if (FrmCommLog->Showing && FrmCommLog->CDSCtlr == (TCDSCtlr*)pLog->Ctlr)
- {
- FrmCommLog->OnWMLogDisplayMessage(Msg);
- }
- }
- }
- }
- else
- if (pLog->Target == log_com)
- {
- pCDSCtlr = (TCDSCtlr*)pLog->Ctlr;
- if (pCDSCtlr && FrmCommLog)
- {
- if (pCDSCtlr->FDispLog && FrmCommLog->Showing)
- {
- FrmCommLog->OnWMLogDisplayMessage(Msg);
- }
- }
- }
- }catch(Exception &e) {}
- //SAFE_DELETE(pLog);
- }
- Term();
- g_AppCfg.bThrJobExit = true;
- return 0;
- }
- //---------------------------------------------------------------------------
|