Ejemplo n.º 1
0
int CLocalSearch::Execute(int nMaximum)
{
	if ( m_pBuffer == NULL )
	{
		if ( UploadQueues.GetQueueRemaining() == 0 ) return 0;
	}

	if ( nMaximum < 0 ) nMaximum = Settings.Gnutella.MaxHits;

	if ( m_pSearch )
	{
		m_pGUID = m_pSearch->m_pGUID;
	}
	else
	{
		Network.CreateID( m_pGUID );
	}

	int nCount = ExecuteSharedFiles( nMaximum );

	if ( m_pSearch != NULL && m_pSearch->m_bWantPFS && m_nProtocol == PROTOCOL_G2 )
	{
		if ( nMaximum == 0 || nCount < nMaximum )
		{
			nCount += ExecutePartialFiles( nMaximum ? nMaximum - nCount : 0 );
		}
	}

	return nCount;
}
Ejemplo n.º 2
0
bool CLocalSearch::Execute(INT_PTR nMaximum, bool bPartial, bool bShared)
{
	ASSERT( bPartial || bShared );

	if ( nMaximum < 0 )
		nMaximum = Settings.Gnutella.MaxHits;

	if ( m_pSearch )
	{
		m_oGUID = m_pSearch->m_oGUID;
	}
	else
	{
		Network.CreateID( m_oGUID );
	}

	INT_PTR nHits = 0;
	if ( bPartial )
	{
		if ( ! ExecutePartialFiles( nMaximum, nHits ) )
			return false;
	}

	if ( ! nMaximum || nHits < nMaximum )
	{
		if ( bShared )
		{
			if ( ! ExecuteSharedFiles( nMaximum, nHits ) )
				return false;
		}
	}

	ASSERT( ! nMaximum || nHits <= nMaximum );

	return true;
}