All pastes #507967 Raw Edit

Anonymous

public cpp v1 · immutable
·published 2007-05-24 20:27 UTC
rendered paste body
CLibraryFile* CLibraryMaps::LookupFileByHash(const Hashes::Sha1Hash& oSHA1, const Hashes::TigerHash& oTiger,											 const Hashes::Ed2kHash& oED2K, const Hashes::BtHash& oBTH,											 const Hashes::Md5Hash& oMD5, QWORD nMinSize,											 QWORD nMaxSize, BOOL bSharedOnly, BOOL bAvailableOnly) const{	CQuickLock oLock( Library.m_pSection );	CLibraryFile* pFile = NULL;	bool bMinSize = false, bMaxSize = false;	bMinSize = !(nMinSize == SIZE_UNKNOWN) && !(nMinSize == 0);	bMaxSize = !(nMaxSize == SIZE_UNKNOWN) && !(nMaxSize == 0);	for ( POSITION pos = GetFileIterator() ; pos ;)	{		CLibraryFile* pFile = GetNextFile( pos );		if ( ( bLocal || pFile->IsShared() ) && ( !bAvailableOnly || pFile->IsAvailable() ) )		{			if ( ( ( ( pFile->m_oSHA1 && oSHA1) ||				( pFile->m_oTiger && oTiger) ||				( pFile->m_oED2K && oED2K) ||				( pFile->m_oMD5 && oMD5) ) &&				!validAndUnequal( pFile->m_oSHA1, oSHA1 ) &&				!validAndUnequal( pFile->m_oTiger, oTiger ) &&				!validAndUnequal( pFile->m_oED2K, oED2K ) &&				!validAndUnequal( pFile->m_oMD5, oMD5 ) ) ||				validAndEqual( pFile->m_oBTH, oBTH ) )			{				if ( ( !bMinSize && !bMaxSize ) ||					( !bMaxSize && nMinSize <= pFile->m_nSize ) ||					( !bMinSize && nMaxSize >= pFile->m_nSize ) ||					( nMinSize <= pFile->m_nSize && nMaxSize >= pFile->m_nSize ) )				{					return pFile;				}			}		}	}	return NULL;}