Developers.Hash.TigerTree.Watching: Difference between revisions
(Importing page from Tikiwiki) |
m (1 revision) |
Latest revision as of 20:09, 20 June 2009
The key looks like this, in CTigerTree:
<source lang="c"> void BeginBlockTest(); void AddToTest(LPCVOID pInput, DWORD nLength); BOOL FinishBlockTest(DWORD nBlock); </source>
Download with Tiger
<source lang="c"> BOOL CDownloadWithTiger::FindNewValidationBlock(int nHash) { if ( m_nVerifyHash == HASH_TIGERTREE ) m_pTigerTree.BeginBlockTest(); </source>
<source lang="c"> void CDownloadWithTiger::ContinueValidation() { if ( m_nVerifyHash == HASH_TIGERTREE ) m_pTigerTree.AddToTest( pChunk, (DWORD)nChunk ); </source>
<source lang="c"> void CDownloadWithTiger::FinishValidation() { CFileFragment* pCorrupted = NULL;
if ( m_nVerifyHash == HASH_TIGERTREE ) { if ( m_pTigerTree.FinishBlockTest( m_nVerifyBlock ) ) </source>
I think I need to understand the DownloadWith inheritance tree. It looks like another inheritance tree, designed like NeighboursWith. First, I'll get it in order:
<source lang="c"> class CDownloadWithExtras : public CDownloadWithSearch class CDownloadWithSearch : public CDownloadWithTiger class CDownloadWithTiger : public CDownloadWithTorrent class CDownloadWithTorrent : public CDownloadWithFile class CDownloadWithFile : public CDownloadWithTransfers class CDownloadWithTransfers : public CDownloadWithSources class CDownloadWithSources : public CDownloadBase </source>
There are 8 classes in the column:
CDownloadBase CDownloadWithSources CDownloadWithTransfers CDownloadWithFile CDownloadWithTorrent CDownloadWithTiger CDownloadWithSearch CDownloadWithExtras
Looking at each to see what it does:
CDownloadBase hash values for each type of hash methods to serialize and provide hash uri text
CDownloadWithSources keeps a list of download sources, CDownloadSource objects
CDownloadWithTransfers keeps a list of download transfers, CDownloadTransfer objects
CDownloadWithFile works with file fragments CFileFragment CFragmentedFile
CDownloadWithTorrent bittorrent stuff, like choke and seed
CDownloadWithTiger this is where the tigertree block text happens
CDownloadWithSearch find more sources
CDownloadWithExtras file preview and progress monitor