ML Reference
ml::MultiThreadedPageRequestProcessor Class Reference

A multi-threaded processor that takes one or even multiple tile requests and can process them iteratively. More...

#include <mlMultiThreadedPageRequestProcessor.h>

Inheritance diagram for ml::MultiThreadedPageRequestProcessor:
ml::PageRequestProcessorBase ml::PageRequestProcessor ml::PageRequestQueueInterface

List of all members.

Classes

struct  ProfilingInfo
 Struct to store profiling infos from different threads.
struct  WorkerThreadState
 Struct used by the worker threads and the io threads.

Public Member Functions

 MultiThreadedPageRequestProcessor (Host *host=NULL)
 ~MultiThreadedPageRequestProcessor ()
virtual bool supportsMultiThreading ()
 Returns if multi-threading is supported.
virtual void setNumWorkerThreads (int threads)
 Set number of worker threads.
virtual void addRootTileRequest (TileRequest *tileRequest)
 Adds the root tileRequest that should be processed (the ownership stays with the caller).
void processAll ()
 Processes all requests until the cursors have traversed the whole tree and the queue is empty.
void process (double timeBudget)
 Process the requests for the given timeBudget given in seconds.
bool needsProcessing ()
 Returns if the tile request needs some more processing.
virtual void append (PageRequest *request)
 Implements PageRequestQueueInterface interface.
virtual void enterProcessingScope ()
 Enters a recursive processing scope (always called from main thread!)
virtual void leaveProcessingScope ()
 Leaves a recursive processing scope (always called from main thread!)

Detailed Description

A multi-threaded processor that takes one or even multiple tile requests and can process them iteratively.

Definition at line 28 of file mlMultiThreadedPageRequestProcessor.h.


Constructor & Destructor Documentation

ml::MultiThreadedPageRequestProcessor::MultiThreadedPageRequestProcessor ( Host host = NULL)
ml::MultiThreadedPageRequestProcessor::~MultiThreadedPageRequestProcessor ( )

Member Function Documentation

virtual void ml::MultiThreadedPageRequestProcessor::addRootTileRequest ( TileRequest *  tileRequest) [virtual]

Adds the root tileRequest that should be processed (the ownership stays with the caller).

Implements ml::PageRequestProcessor.

virtual void ml::MultiThreadedPageRequestProcessor::append ( PageRequest request) [virtual]

Implements PageRequestQueueInterface interface.

Implements ml::PageRequestQueueInterface.

virtual void ml::MultiThreadedPageRequestProcessor::enterProcessingScope ( ) [virtual]

Enters a recursive processing scope (always called from main thread!)

Reimplemented from ml::PageRequestProcessorBase.

virtual void ml::MultiThreadedPageRequestProcessor::leaveProcessingScope ( ) [virtual]

Leaves a recursive processing scope (always called from main thread!)

Reimplemented from ml::PageRequestProcessorBase.

bool ml::MultiThreadedPageRequestProcessor::needsProcessing ( ) [virtual]

Returns if the tile request needs some more processing.

Implements ml::PageRequestProcessor.

void ml::MultiThreadedPageRequestProcessor::process ( double  timeBudget) [virtual]

Process the requests for the given timeBudget given in seconds.

Implements ml::PageRequestProcessor.

void ml::MultiThreadedPageRequestProcessor::processAll ( ) [virtual]

Processes all requests until the cursors have traversed the whole tree and the queue is empty.

Implements ml::PageRequestProcessor.

virtual void ml::MultiThreadedPageRequestProcessor::setNumWorkerThreads ( int  threads) [virtual]

Set number of worker threads.

Implements ml::PageRequestProcessor.

virtual bool ml::MultiThreadedPageRequestProcessor::supportsMultiThreading ( ) [inline, virtual]

Returns if multi-threading is supported.

Implements ml::PageRequestProcessorBase.

Definition at line 35 of file mlMultiThreadedPageRequestProcessor.h.


The documentation for this class was generated from the following file: