Developers.Hash.TigerTree.Watching

From Shareaza Wiki
Jump to navigation Jump to search

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