Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages

HashTreeCtrl.h

Go to the documentation of this file.
00001 
00021 #pragma once
00022 #include "types.h"
00023 #include "hashtreenode.h"
00024 
00027 #define CS_BASE         10
00028 #define CS_BUILDUP      (CS_BASE + 2)
00029 #define CS_DEPTH        02
00030 
00031 
00033 #define CHashTreeCtrlNTA    hashClass, CS_BASE, CS_BUILDUP, CS_DEPTH
00034 
00036 class CHashTreeNode;
00037 
00041 template<class hashClass>
00042 class CHashTreeCtrl : public CHashTreeNode<CHashTreeCtrlNTA>
00043 {
00044 public:
00046     static const CString CLASSNAME;
00048     CHashTreeCtrl(void) : CHashTreeNode<CHashTreeCtrlNTA>() {};
00050     CHashTreeCtrl(uint64 nLength) : CHashTreeNode<CHashTreeCtrlNTA>(nLength) {};
00052     CHashTreeCtrl(CFile &cFile, uint64 nPath=0, uint8 nLevel=0) : CHashTreeNode<CHashTreeCtrlNTA>(cFile) {}
00053 
00055     //CHashTreeCtrl(CFile &cFile);
00057     ~CHashTreeCtrl(void);
00060 //  static  CHashTreeCtrl   *NewTree(uint64 inFileSize, uint32* ineD2kHash);
00062 //  static  CHashTreeCtrl   *LoadTree(uint32* ineD2kHash);
00064     //  static  HashStruc       *GetTreeHash(char inStartLevel, char inEndLevel);
00065     
00067     CHashTreeCtrl   *GetSubTree(uint32 TargetNode, char RootLevel, char EndLevel);
00069 //  uint32      HashFile(CFile* inFile, uint32 HashStart, uint32 HashEnd, char EndLevel);
00071     uint32      WriteTable(CFile* outFile);
00073     uint32      GetHashLevelStrip(uint32 HashStart, uint32 HashEnd, char HashLevel);
00074 
00075 private:
00076     //CHashTreeCtrl(uint64 inFileSize, uint32 *eD2kHash);
00077 };
00078 
00079 template <class hashClass>
00080 const CString CHashTreeCtrl<hashClass>::CLASSNAME = CString("CHashTreeCtrl/") + StaticAlgorithmName();
00081 
00082 #include "HashTreeCtrl.cpp"

Generated on Mon Oct 27 14:45:06 2003 for Moonlight's eMule Tweaks Documentation by doxygen 1.3.4