Skip to content
Snippets Groups Projects
crawler.cpp 1003 B
Newer Older
  • Learn to ignore specific revisions
  • benbergk's avatar
    benbergk committed
    //
    // Created by Ben Bergkamp on 1/31/18.
    //
    
    #include "crawler.h"
    
    
    /*
     *
     * @parms number of spiders
     * Creates a number of spiders and starts new threads for them
     *
     */
    
    
    void Crawler::SpawnSpiders ( size_t num_spiders,
                                 unordered_map< size_t, int > *duplicateUrlMap
    									)
    
    jsclose's avatar
    jsclose committed
    	{
    	for ( size_t i = 0; i < num_spiders; i++ )
    		{
    
    		Spider *temp = new Spider( this->mode, this->urlFrontier , duplicateUrlMap, this->IndexerQueue );
    
    jsclose's avatar
    jsclose committed
    		temp->StartThread( );
    		this->spiders.push_back( temp );
    		}
    
    jsclose's avatar
    jsclose committed
    	}
    
    /*
     *
     *Function to wait for all of the threads to finish running
     *
     */
    
    vcday's avatar
    vcday committed
    void Crawler::WaitOnAllSpiders ( )
    
    jsclose's avatar
    jsclose committed
    	{
    
    	cout << "Waiting for spiders to finish...\n";
    
    jsclose's avatar
    jsclose committed
    	for ( Spider *spider : spiders )
    		{
    
    vcday's avatar
    vcday committed
    		spider->WaitForFinish( );
    		delete spider; //FIXME do this in destructor?
    
    vcday's avatar
    vcday committed
    void Crawler::KillAllSpiders ( )
    
    	{
    	cout << "Waiting for spiders to finish...\n";
    	for ( Spider *spider : spiders )
    		{
    		spider->Die( );
    		delete spider; //FIXME do this in destructor?
    		}
    	}