00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #if !defined(AFX_FSDLDFILTER_H__5E70A16A_D18D_46ED_BEA7_B92C070E9601__INCLUDED_) 00007 #define AFX_FSDLDFILTER_H__5E70A16A_D18D_46ED_BEA7_B92C070E9601__INCLUDED_ 00008 00009 #if _MSC_VER > 1000 00010 #pragma once 00011 #endif 00012 00013 enum fsDldFilterType 00014 { 00015 DFT_NONE, 00016 DFT_GROUP 00017 }; 00018 00019 class fsDldFilter 00020 { 00021 public: 00022 00023 virtual fsDldFilterType GetType(); 00024 00025 virtual BOOL IsSatisfies (vmsDownloadSmartPtr dld); 00026 00027 fsDldFilter(); 00028 virtual ~fsDldFilter(); 00029 00030 }; 00031 00032 class fsDldGroupFilter : public fsDldFilter 00033 { 00034 public: 00035 virtual fsDldFilterType GetType(); 00036 00037 00038 vmsDownloadsGroupSmartPtr GetGroup(); 00039 00040 void SetGroup (vmsDownloadsGroupSmartPtr pGroup); 00041 00042 virtual BOOL IsSatisfies (vmsDownloadSmartPtr dld); 00043 fsDldGroupFilter(); 00044 virtual ~fsDldGroupFilter(); 00045 00046 protected: 00047 vmsDownloadsGroupSmartPtr m_pGrp; 00048 }; 00049 00050 class fsDldRunningFilter : public fsDldFilter 00051 { 00052 public: 00053 BOOL IsSatisfies(vmsDownloadSmartPtr dld); 00054 fsDldRunningFilter(); 00055 virtual ~fsDldRunningFilter(); 00056 00057 }; 00058 00059 class fsDldDoneFilter : public fsDldFilter 00060 { 00061 public: 00062 BOOL IsSatisfies(vmsDownloadSmartPtr dld); 00063 fsDldDoneFilter(); 00064 virtual ~fsDldDoneFilter(); 00065 00066 }; 00067 00068 class fsDldTasksFilter : public fsDldFilter 00069 { 00070 public: 00071 BOOL IsSatisfies(vmsDownloadSmartPtr dld); 00072 fsDldTasksFilter(); 00073 virtual ~fsDldTasksFilter(); 00074 00075 }; 00076 00077 class fsDldStoppedFilter : public fsDldFilter 00078 { 00079 public: 00080 BOOL IsSatisfies(vmsDownloadSmartPtr dld); 00081 fsDldStoppedFilter(); 00082 virtual ~fsDldStoppedFilter(); 00083 00084 }; 00085 00086 class fsDldScheduledFilter : public fsDldFilter 00087 { 00088 public: 00089 BOOL IsSatisfies(vmsDownloadSmartPtr dld); 00090 fsDldScheduledFilter(); 00091 virtual ~fsDldScheduledFilter(); 00092 00093 }; 00094 00095 class fsDldHistRecFilter 00096 { 00097 public: 00098 virtual BOOL IsSatisfies (fsDLHistoryRecord* rec); 00099 fsDldHistRecFilter(); 00100 virtual ~fsDldHistRecFilter(); 00101 00102 }; 00103 00104 class fsDldHistRecFilter_DuringPeriod : public fsDldHistRecFilter 00105 { 00106 public: 00107 void SetPeriod (int cDays); 00108 virtual BOOL IsSatisfies(fsDLHistoryRecord* rec); 00109 00110 fsDldHistRecFilter_DuringPeriod(); 00111 virtual ~fsDldHistRecFilter_DuringPeriod(); 00112 00113 protected: 00114 int m_lastDays; 00115 00116 }; 00117 00118 class fsDldHistRecFilter_Today : public fsDldHistRecFilter 00119 { 00120 public: 00121 virtual BOOL IsSatisfies(fsDLHistoryRecord* rec); 00122 fsDldHistRecFilter_Today(); 00123 virtual ~fsDldHistRecFilter_Today(); 00124 00125 }; 00126 00127 class fsDldHistRecFilter_Yesterday : public fsDldHistRecFilter 00128 { 00129 public: 00130 virtual BOOL IsSatisfies(fsDLHistoryRecord* rec); 00131 fsDldHistRecFilter_Yesterday(); 00132 virtual ~fsDldHistRecFilter_Yesterday(); 00133 00134 }; 00135 00136 class fsDldHistRecFilter_Custom : public fsDldHistRecFilter 00137 { 00138 public: 00139 void SetTimeRange (FILETIME tFrom, FILETIME tTo); 00140 const FILETIME* Get_TFrom () const {return &m_tFrom;} 00141 const FILETIME* Get_TTo () const {return &m_tTo;} 00142 00143 virtual BOOL IsSatisfies(fsDLHistoryRecord* rec); 00144 fsDldHistRecFilter_Custom(); 00145 virtual ~fsDldHistRecFilter_Custom(); 00146 00147 protected: 00148 FILETIME m_tFrom, m_tTo; 00149 00150 }; 00151 00152 #endif
1.5.6