summaryrefslogtreecommitdiff
path: root/src/MemoryFrontier.hpp
blob: 9e0139d1e5ee8da285a32187af79487d2561433f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef __MEMORY_FRONTIER_H
#define __MEMORY_FRONTIER_H

#include "Frontier.hpp"
#include "Logger.hpp"

#include <queue>

class MemoryFrontier : public Frontier {
	public:
		virtual ~MemoryFrontier( ) {
		}
		
		URL getNextUrl( ) {
			if( m_urls.empty( ) ) {
				return URL::Null;
			}
			URL url = m_urls.back( );
			m_urls.pop( );
			return url;
		}

		void addUrl( const URL &url ) {
			LOG( logDEBUG ) << "Adding to frontier " << url;
			m_urls.push( url );
		}
		
	protected:
		queue<URL> m_urls;
};

#endif