// // 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 ) { for ( size_t i = 0; i < num_spiders; i++ ) { Spider *temp = new Spider( this->mode, this->urlFrontier , duplicateUrlMap, this->IndexerQueue ); temp->StartThread( ); this->spiders.push_back( temp ); } } /* * *Function to wait for all of the threads to finish running * */ void Crawler::WaitOnAllSpiders ( ) { cout << "Waiting for spiders to finish...\n"; for ( Spider *spider : spiders ) { spider->WaitForFinish( ); delete spider; //FIXME do this in destructor? } } void Crawler::KillAllSpiders ( ) { cout << "Waiting for spiders to finish...\n"; for ( Spider *spider : spiders ) { spider->Die( ); delete spider; //FIXME do this in destructor? } }