OLS is an OGC Standard.
Copyright (c) 2005,2010,2014 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
get a bucket from the cursor (of requested size)
The cursor is considered to be positioned in a gap between records. Gap number 0 is the gap before the first record. Gap number J is the gap between the Jth and (J+1)st records. If there are N records in total, gap number N is the gap after the last record. The value returned by this request is the current cursor position.
This request positions a large result set cursor current position (CP) to a specified record within the complete result set. The action of this request can be described in two steps as follows, although there is no implication that the actual implementation of the request must be implemented in this way: First, if the "CursorStartPosition" element is RESULT_SET_START, the CP is moved to the gap before the first record; if the "CursorStartPosition" element is RESULT_SET_END, the CP is moved to the gap after the last record; and if the "CursorStartPosition" element is CURRENT_POSITION, the CP is not moved. Second, if NumOfPositions is positive, the CP is moved forward (toward the end of the result set) by NumOfPositions records; if NumOfPositions is negative, the CP is moved backward (toward the beginning of the result set) by NumOfPositions records; if NumOfPositions is zero, the CP is not moved. However, if this movement would move the CP before the gap at the beginning of the large result set or after the gap at the end of the large result set, the CP is instead left at that gap.
This request is for the server to process all of the records in the result set starting with the first record regardless of where the cursor's current position is currently positioned. Upon completion of this request, the cursor current position is positioned at the end of the complete result set.
The action function's first parameter is a pointer to a structure of the type contained in the cursor's records. The second is an application-defined structure, or NULL. In processing each cursor element, the third element of ProcessCursorRequest is passed in as the second argument of ActionFunc. If ActionFunc yields a negative result value, processing will be aborted.
ProcessCursorResponse returns the number of records processed.
How many records actually got returned.
the number of the gap at which the cursor is left
Number of the gap before the set of records in the server's buffer, ready to be returned.
Number of the gap after the set of records in the server's buffer, ready to be returned.
Indication of whether last result record is ready to be returned. This field is true if and only if CursorBufferEnd describes the gap after the last bucket record.
Current cursor position, as a gap number. Reading forward will start after this gap; reading backward will start before this gap.