SDC C-Project CF Review 프로그램
LYW
2021-07-29 bd13fa3f9396f1f681759f4623c55d5f91d74a9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#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;
};