00001
00002
00003
00004
00005
00006 #if !defined(AFX_FSSITESMGR_H__211935DF_F52C_4919_ADEC_506651483E6F__INCLUDED_)
00007 #define AFX_FSSITESMGR_H__211935DF_F52C_4919_ADEC_506651483E6F__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 #include <fsString.h>
00014 #include "list.h"
00015
00016 #define SITE_VALIDFOR_HTTP 1
00017 #define SITE_VALIDFOR_HTTPS 2
00018 #define SITE_VALIDFOR_FTP 4
00019 #define SITE_VALIDFOR_SUBDOMAINS 8
00020
00021 struct fsSiteInfo
00022 {
00023 fsString strName;
00024 fsString strUser;
00025 fsString strPassword;
00026 UINT cMaxConns;
00027 UINT cConnsNow;
00028 vmsDownloadsGroupSmartPtr pGroup;
00029 DWORD dwFtpFlags;
00030 BOOL bTemp;
00031 DWORD dwValidFor;
00032 };
00033
00034 struct fsSiteInfo_v2
00035 {
00036 fsString strName;
00037 fsString strUser;
00038 fsString strPassword;
00039 UINT cMaxConns;
00040 UINT cConnsNow;
00041 fsString strGroup;
00042 DWORD dwFtpFlags;
00043 BOOL bTemp;
00044 DWORD dwValidFor;
00045 };
00046
00047 struct fsSiteInfo_v1
00048 {
00049 fsString strName;
00050 fsString strUser;
00051 fsString strPassword;
00052 UINT cMaxConns;
00053 UINT cConnsNow;
00054 fsString strGroup;
00055 BOOL bFtpPassive;
00056 BOOL bTemp;
00057 };
00058
00059 #define SITESFILE_CURRENT_VERSION ((WORD)3)
00060 #define SITESFILE_SIG "FDM Sites "
00061
00062 struct fsSitesFileHdr
00063 {
00064 char szSig [sizeof (SITESFILE_SIG) + 1];
00065 WORD wVer;
00066
00067 fsSitesFileHdr ()
00068 {
00069 strcpy (szSig, SITESFILE_SIG);
00070 wVer = SITESFILE_CURRENT_VERSION;
00071 }
00072 };
00073
00074 enum fsSitesMgrEvent
00075 {
00076 SM_SITEADDED,
00077 SM_SITEDELETED,
00078 SM_SITEUPDATED
00079 };
00080
00081 typedef void (*fntSitesMgrEvents)(fsSitesMgrEvent, fsSiteInfo*, LPVOID);
00082
00083 class fsSitesMgr
00084 {
00085 public:
00086 void CheckGroups();
00087 void DeleteAllPasswords();
00088
00089 void SiteUpdated (fsSiteInfo* pSite);
00090
00091 BOOL SaveToFile(HANDLE hFile);
00092
00093 BOOL LoadFromFile(HANDLE hFile);
00094
00095 int GetTempSiteCount();
00096
00097 void SetEventsFunc (fntSitesMgrEvents pfn, LPVOID lpParam);
00098
00099 int GetSiteCount();
00100
00101 void DeleteAllTempSites();
00102
00103 void DeleteSite (fsSiteInfo* pSite);
00104
00105 fsSiteInfo* FindSite2 (LPCSTR pszSite, DWORD dwValidFor, BOOL bAllReq = TRUE);
00106
00107 int FindSite (LPCSTR pszName, DWORD dwValidFor, BOOL bAllReq = TRUE);
00108
00109 fsSiteInfo* GetSite (int iIndex);
00110
00111 int AddSite (fsSiteInfo& site);
00112
00113 fsSitesMgr();
00114 virtual ~fsSitesMgr();
00115
00116 protected:
00117 void Event (fsSitesMgrEvent ev, fsSiteInfo* site);
00118 fntSitesMgrEvents m_pfnEvents;
00119 LPVOID m_lpEventsParam;
00120 fs::list <fsSiteInfo> m_vSites;
00121 };
00122
00123 #endif