ML Reference
|
A cursor to create page and tile requests in an iterative manner, to allow breaking/resuming at any time and to avoid a recursive tree traversal which can not be easily resumed. More...
#include <mlPageRequestCursor.h>
Public Types | |
enum | CursorState { HasMoreWork , HasFinished , IsBlocked } |
Defines the current state of the cursor. More... | |
Public Member Functions | |
PageRequestCursor (PageRequest *request) | |
Creates cursor from a root PageRequest. | |
PageRequestCursor (TileRequest *request) | |
Creates cursor from a root TileRequest. | |
PageRequestCursor () | |
Creates empty cursor. | |
void | init (TileRequest *request) |
Initializes from a TileRequest. | |
void | setProcessingScope (int scope) |
Sets the processing scope. | |
int | getProcessingScope () const |
Gets the processing scope. | |
CursorState | nextStep (PageRequestQueueInterface &queue, bool &hasCreatedWork) |
Implements an iterative tree traversal with automatic expanding of the tile and page requests. | |
bool | propagateCancellationDownIfRequestNotNeededAnymore () |
See Page/TileRequest. | |
void | propagateErrorUpwards (MLErrorCode error) |
See Page/TileRequest. | |
void | collectPageRequestsWithErrors (std::set< PageRequest * > &result) |
See Page/TileRequest. | |
bool | isNeeded () |
Returns if the cursor is still needed (which is the case when it points to either a PageRequest or TileRequest). | |
void | clear () |
Clears the cursor, so that it points to no requests anymore. | |
TileRequest * | currentTileRequest () |
returns the current tile request | |
void | append (PageRequest *request) override |
Append PageRequest request which is ready for processing to the work queue. | |
MLint | getNumCreatedPageRequests () const |
Return number of created page requests (inner requests, not the requests that are in the queue). | |
Public Member Functions inherited from ml::PageRequestQueueInterface | |
virtual | ~PageRequestQueueInterface () |
Virtual destructor to get rid of warning. | |
A cursor to create page and tile requests in an iterative manner, to allow breaking/resuming at any time and to avoid a recursive tree traversal which can not be easily resumed.
Definition at line 38 of file mlPageRequestCursor.h.
Defines the current state of the cursor.
Enumerator | |
---|---|
HasMoreWork | Further work is available, re-call nextStep(). |
HasFinished | The cursor has no more work to-do and may be removed. |
IsBlocked | The cursor has more work but is blocked by a pending request (e.g., a pending memory image). |
Definition at line 58 of file mlPageRequestCursor.h.
ml::PageRequestCursor::PageRequestCursor | ( | PageRequest * | request | ) |
Creates cursor from a root PageRequest.
ml::PageRequestCursor::PageRequestCursor | ( | TileRequest * | request | ) |
Creates cursor from a root TileRequest.
ml::PageRequestCursor::PageRequestCursor | ( | ) |
Creates empty cursor.
|
overridevirtual |
Append PageRequest request
which is ready for processing to the work queue.
Implements ml::PageRequestQueueInterface.
void ml::PageRequestCursor::clear | ( | ) |
Clears the cursor, so that it points to no requests anymore.
void ml::PageRequestCursor::collectPageRequestsWithErrors | ( | std::set< PageRequest * > & | result | ) |
See Page/TileRequest.
|
inline |
returns the current tile request
Definition at line 86 of file mlPageRequestCursor.h.
|
inline |
Return number of created page requests (inner requests, not the requests that are in the queue).
Definition at line 92 of file mlPageRequestCursor.h.
|
inline |
Gets the processing scope.
Definition at line 55 of file mlPageRequestCursor.h.
void ml::PageRequestCursor::init | ( | TileRequest * | request | ) |
Initializes from a TileRequest.
bool ml::PageRequestCursor::isNeeded | ( | ) |
Returns if the cursor is still needed (which is the case when it points to either a PageRequest or TileRequest).
CursorState ml::PageRequestCursor::nextStep | ( | PageRequestQueueInterface & | queue, |
bool & | hasCreatedWork ) |
Implements an iterative tree traversal with automatic expanding of the tile and page requests.
Page requests which are ready for processing are added to the queue
. The return value signals if there is more work available from this cursor, if it has finished or if it is blocked (which can happen on MemoryImage calculations).
bool ml::PageRequestCursor::propagateCancellationDownIfRequestNotNeededAnymore | ( | ) |
See Page/TileRequest.
void ml::PageRequestCursor::propagateErrorUpwards | ( | MLErrorCode | error | ) |
See Page/TileRequest.
|
inline |
Sets the processing scope.
Definition at line 52 of file mlPageRequestCursor.h.