#pragma once
|
|
#include <vector>
|
#include "CHThreadPools/TimerThreadPools.h"
|
enum MonitorProcessType { MonitorProcessType_Copy=0, MonitorProcessType_Move, MonitorProcessType_Count };
|
|
typedef std::vector<CString> VecString;
|
typedef std::vector<CString>::iterator VecStringIt;
|
typedef std::vector<CString>::const_iterator constVecStringIt;
|
|
struct SFolderMonitorParam
|
{
|
SFolderMonitorParam()
|
{
|
strMonitorFolderPath = _T("");
|
strMonitorFileExt = _T("");
|
strProcessFolderPath = _T("");
|
nProcessType = MonitorProcessType_Copy;
|
}
|
|
CString strMonitorFolderPath; // ¿øº» Æú´õ °æ·Î
|
CString strMonitorFileExt; // ¸ð´ÏÅ͸µ ÆÄÀÏ È®ÀåÀÚ
|
CString strProcessFolderPath; // º¹»ç Æú´õ °æ·Î
|
int nProcessType; // 0.Copy, 1.Move
|
};
|
|
struct SFolderMonitorResult
|
{
|
SFolderMonitorResult()
|
{
|
strProcessFileName = _T("");
|
}
|
|
CString strProcessFileName; // º¹»çÇÑ ÆÄÀÏ À̸§
|
};
|
typedef std::vector<SFolderMonitorResult> VecFolderMonitorResult;
|
typedef std::vector<SFolderMonitorResult>::iterator VecFolderMonitorResultIt;
|
typedef std::vector<SFolderMonitorResult>::const_iterator constVecFolderMonitorResultIt;
|
|
class AFX_EXT_CLASS CFolderMonitoring : public CTimerThreadPools
|
{
|
public:
|
CFolderMonitoring(DWORD dwPeriod=50);
|
virtual ~CFolderMonitoring(void);
|
|
// command
|
virtual BOOL StartMonitoring();
|
virtual void StopMonitoring();
|
virtual void SetMonitorParam(const SFolderMonitorParam& monitorParam);
|
|
protected:
|
virtual BOOL MainProcessing(VecString& vecFilePath, const SFolderMonitorParam& sMonitorParam);
|
virtual BOOL PostProcessing(const VecString& vecFilePath, const SFolderMonitorParam& sMonitorParam);
|
virtual void TimerThreadProcess(PVOID pParameter);
|
BOOL IsProcessedFile(const CString& strFilename);
|
|
protected:
|
SFolderMonitorParam m_sMonitorParam; // ¸ð´ÏÅ͸µ ÆÄ¶ó¹ÌÅÍ
|
VecFolderMonitorResult m_vecMonitorResult; // ¸ð´ÏÅ͸µ ÆÄÀÏ À̸§ ¹éÅÍ
|
CCriticalSection m_csMonioring;
|
};
|