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) |
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 | |
virtual void | append (PageRequest *request) |
Append PageRequest request which is ready for processing to the work queue. |
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 35 of file mlPageRequestCursor.h.
Defines the current state of the cursor.
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 55 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.
virtual void ml::PageRequestCursor::append | ( | PageRequest * | request | ) | [virtual] |
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.
TileRequest* ml::PageRequestCursor::currentTileRequest | ( | ) | [inline] |
returns the current tile request
Definition at line 83 of file mlPageRequestCursor.h.
int ml::PageRequestCursor::getProcessingScope | ( | ) | const [inline] |
Gets the processing scope.
Definition at line 52 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 | ) |
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.
void ml::PageRequestCursor::setProcessingScope | ( | int | scope | ) | [inline] |
Sets the processing scope.
Definition at line 49 of file mlPageRequestCursor.h.