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_VMSMETALINKFILE_H__D69EE721_C692_46B8_B91E_1F7A24B5C3A6__INCLUDED_) 00007 #define AFX_VMSMETALINKFILE_H__D69EE721_C692_46B8_B91E_1F7A24B5C3A6__INCLUDED_ 00008 00009 #if _MSC_VER > 1000 00010 #pragma once 00011 #endif 00012 00013 #include "list.h" 00014 00015 struct vmsMetalinkFile_File_Hash 00016 { 00017 fsString strAlgorithm; 00018 fsString strChecksum; 00019 }; 00020 00021 struct vmsMetalinkFile_File_Url 00022 { 00023 fsString strProtocol; 00024 fsString strUrl; 00025 }; 00026 00027 struct vmsMetalinkFile_File 00028 { 00029 fsString strName; 00030 fsString strOS; 00031 fs::list <vmsMetalinkFile_File_Hash> vHashes; 00032 fs::list <vmsMetalinkFile_File_Url> vMirrors; 00033 }; 00034 00035 class vmsMetalinkFile 00036 { 00037 public: 00038 00039 BOOL Parse (LPCSTR pszFile); 00040 00041 LPCSTR get_Description(); 00042 00043 int get_FileCount(); 00044 vmsMetalinkFile_File* get_File (int nIndex); 00045 00046 vmsMetalinkFile(); 00047 virtual ~vmsMetalinkFile(); 00048 00049 protected: 00050 00051 BOOL ReadUrlNode (IXMLDOMNode *pNode, vmsMetalinkFile_File_Url* url); 00052 BOOL ReadHashNode (IXMLDOMNode *pNode, vmsMetalinkFile_File_Hash* hash); 00053 BOOL ReadResourcesNode (IXMLDOMNode *pNode, vmsMetalinkFile_File *file); 00054 BOOL ReadVerificationNode (IXMLDOMNode *pNode, vmsMetalinkFile_File *file); 00055 BOOL ReadFileNode (IXMLDOMNode *pFile); 00056 BOOL ReadFilesNode (IXMLDOMNode* pFiles); 00057 00058 fsString m_strDescription; 00059 fs::list <vmsMetalinkFile_File> m_vFiles; 00060 }; 00061 00062 #endif
1.5.6