CPMGetRowsOut - [ms-wsp]: Windows Search Protocol Intellectual Property Rights Notice for Open Specifications Documentation

CPMGetRowsOut
The CPMGetRowsOut message replies to a CPMGetRowsIn message with the rows of a query. Servers MUST format offsets to variable length data types in the row field as follows:
The client indicated that it was a 32-bit system (_iClientVersion less than 0x00010000 in the _iClientVersion field of CPMConnectIn), and the server indicated that it was a 32-bit system (_serverVersion less than 0x00010000 in CPMConnectOut). Offsets are 32-bit integers.
The client indicated that it was a 64-bit system (_iClientVersion greater than 0x00010000 in CPMConnectIn), and the server indicated that it was a 32-bit system (_serverVersion less than 0x00010000 in CPMConnectOut). Offsets are 32-bit integers.
The client indicated that it was a 32-bit system (_iClientVersion less than 0x00010000 in the _iClientVersion field of CPMConnectIn), and the server indicated that it was a 64-bit system (_serverVersion greater than 0x00010000 in CPMConnectOut). Offsets are 32-bit integers.
The client indicated that it was a 64-bit system (_iClientVersion greater than 0x00010000 in CPMConnectIn), and the server indicated that it was a 64-bit system (_serverVersion greater than 0x00010000 in CPMConnectOut). Offsets are 64-bit integers.
The format of the CPMGetRowsOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_cRowsReturned
|
eType
|
_chapt
|
SeekDescription (variable)
|
...
|
paddingRows (variable)
|
...
|
Rows (variable)
|
...
|
_cRowsReturned (4 bytes): A 32-bit unsigned integer indicating the number of rows returned in Rows.
eType (4 bytes): A 32-bit unsigned integer. MUST contain one of the following values indicating the point at which to begin retrieving rows.
Value
|
Meaning
|
eRowsSeekNone
0x00000000
|
The SeekDescription is absent.
|
eRowSeekNext
0x00000001
|
SeekDescription contains a CRowSeekNext structure.
|
eRowSeekAt
0x00000002
|
SeekDescription contains a CRowSeekAt structure.
|
eRowSeekAtRatio
0x00000003
|
SeekDescription contains a CRowSeekAtRatio structure.
|
eRowSeekByBookmark
0x00000004
|
SeekDescription contains a CRowSeekByBookmark structure.
|
_chapt (4 bytes): A 32-bit value representing the handle of the rowset chapter.
SeekDescription (variable): This field MUST contain a structure of the type indicated by the eType field.
paddingRows (variable): This field MUST be of sufficient length (0 to _cbReserved-1 bytes) to pad the Rows field to _cbReserved offset from the beginning of a message, where _cbReserved is the value in the CPMGetRowsIn message. Padding bytes used in this field can be any arbitrary value. This field MUST be ignored by the receiver.
Rows (variable): Row data is formatted as prescribed by column information in the most recent CPMSetBindingsIn message. Rows MUST be stored in forward order (for example, row 1 before row 2).
Fixed-sized columns MUST be stored at the offsets specified by the most recent CPMSetBindingsIn message.
Variable-sized columns (for example, strings) MUST be stored as follows:
The variable data itself (for example, the string) is stored near the end of the buffer in descending order (for example, the collection of all variable data for row 1 is at the end, row 2 next closest, and so on).
The fixed-sized area (at the beginning of the row buffer) MUST contain a CRowVariant for each column, stored at the offset specified in the most recent CPMSetBindingsIn message. vType MUST contain the data type (for example, VT_LPWSTR). If, as determined by the rules at the beginning of this section, 32-bit offsets are being used, the Offset field in CRowVariant MUST contain a 32-bit value that is the offset of the variable data from the beginning of the CPMGetRowsOut message, plus the value of _ulClientBase specified in the most recent CPMGetRowsIn message. If 64-bit offsets are being used, the Offset field in CRowVariant MUST contain a 64-bit value that is the offset from the beginning of the CPMGetRowsOut message, added to a 64-bit value composed by using _ulClientBase as the low 32-bits and _ulReserved2 as the high 32-bits.
The buffer is filled in from both ends. CRowVariant structures, one for each row, are stored at the beginning of the buffer. Each of these structures points to the row data which is stored starting at the end of the buffer.
Figure 3: Structure of the row buffer
For example, if the CPMSetBindingsIn message specified two columns—Size (VT_I4) and Title (VT_LPWSTR)—and _ulClientBase from CPMGetRowsIn was 0x10000, two rows would appear as follows.
Figure 4: Windows Search Protocol message header field offsets
At the beginning of the offset, 0x10000, there are two CRowVariants, one for each column of variable data stored for each of the two rows returned. Each CRowVariant consists of the following:
A 4 byte row identifier in which the column belongs.
8 unused bytes that can be set to an arbitrary value.
A 4 byte offset into the row data where the column data can be located.
CPMRatioFinishedIn
The CPMRatioFinishedIn message requests the completion percentage of a query. The format of the CPMRatioFinishedIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor
|
_fQuick
|
_hCursor (4 bytes): The handle from the CPMCreateQueryOut message identifying the query for which to request completion information.
_fQuick (4 bytes): This is unused and MUST be ignored by the server.
Note This field MUST be set to 0x00000001.
CPMRatioFinishedOut
The CPMRatioFinishedOut message replies to a CPMRatioFinishedIn message with the completion ratio of a query. The format of the CPMRatioFinishedOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_ulNumerator
|
_ulDenominator
|
_cRows
|
_fNewRows
|
_ulNumerator (4 bytes): A 32-bit unsigned integer indicating the numerator of the completion ratio in terms of rows.
_ulDenominator (4 bytes): A 32-bit unsigned integer indicating the denominator of the completion ratio in terms of row.<13>
_cRows (4 bytes): A 32-bit unsigned integer indicating the total number of rows for the query.
_fNewRows (4 bytes): A Boolean value indicating if there are new rows available. This field MUST NOT be set to any values other than the following.
Value
|
Meaning
|
0x00000000
|
There are no new rows in the rowset.
|
0x00000001
|
There are new rows available in the rowset.
|
CPMFetchValueIn
The CPMFetchValueIn message requests a property value that was too large to return in a rowset. As specified in section 3.2.4.2.5, this message is sent repeatedly to retrieve all bytes of the property, updating _cbSoFar for each, until the _fMoreExists field of the CPMFetchValueOut message is set to FALSE.
The format of the CPMFetchValueIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_wid
|
_cbSoFar
|
_cbPropSpec
|
_cbChunk
|
PropSpec (variable)
|
...
|
_padding (variable)
|
...
|
_wid (4 bytes): A 32-bit unsigned integer representing the document ID identifying the document for which a property is to be fetched.
_cbSoFar (4 bytes): A 32-bit unsigned integer containing the number of bytes previously transferred for this property.
Note This field MUST be set to 0x00000000 in the first message.
_cbPropSpec (4 bytes): A 32-bit unsigned integer containing the size, in bytes, of the PropSpec field.
_cbChunk (4 bytes): A 32-bit unsigned integer containing the maximum number of bytes that the sender can accept in a CPMFetchValueOut message.<14>
PropSpec (variable): A CFullPropSpec structure specifying the property to retrieve.
_padding (variable): This field MUST be of the length necessary (0 to 3 bytes) to pad the message out to a multiple of 4 bytes in length. The value of the padding bytes can be any arbitrary value. This field MUST be ignored by the receiver.
CPMFetchValueOut
The CPMFetchValueOut message replies to a CPMFetchValueIn message with a property value from a previous query. As specified in section 3.2.4.2.5, this message is sent after each CPMFetchValueIn message until all bytes of the property are transferred.
The format of the CPMFetchValueOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_cbValue
|
_fMoreExists
|
_fValueExists
|
vValue (variable)
|
...
|
_cbValue (4 bytes): A 32-bit unsigned integer containing the total size, in bytes, of vValue.
_fMoreExists (4 bytes): A Boolean value indicating whether additional CPMFetchValueOut messages are available.
Value
|
Meaning
|
0x00000000
|
There are no additional data available.
|
0x00000001
|
There are additional data available.
|
_fValueExists (4 bytes): A Boolean value indicating whether there is a value for the property.
Value
|
Meaning
|
0x00000000
|
A value for the property does not exist.
|
0x00000001
|
A value for the property exists.
|
vValue (variable): A portion of a byte array containing a SERIALIZEDPROPERTYVALUE, where the offset of the beginning of the portion is the value of _cbSoFar in CPMFetchValueIn. The length of the portion, indicated by the _cbValue field, MUST be less than or equal to the value of _cbChunk in CPMFetchValueIn.
CPMGetNotify
The CPMGetNotify message requests that the client wants to be notified of rowset changes.
The message MUST NOT include a body; only the message header, as specified in section 2.2.2, is sent.
CPMSendNotifyOut
The CPMSendNotifyOut message notifies the client of a change to the results of a query.
This message is only sent when a change occurs. The format of the CPMSendNotifyOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_watchNotify
|
_watchNotify (4 bytes): A 32-bit unsigned integer representing the change to the query. It MUST be one of the following values.<15>
Value
|
Meaning
|
DBWATCHNOTIFY_ROWSCHANGED
0x00000001
|
The number of rows in the query rowset has changed.
|
DBWATCHNOTIFY_QUERYDONE
0x00000002
|
The query has completed.
|
DBWATCHNOTIFY_QUERYREEXECUTED
0x00000003
|
The query has been executed again.
|
CPMGetApproximatePositionIn
The CPMGetApproximatePositionIn message requests the approximate position of a bookmark in a chapter. The format of the CPMGetApproximatePositionIn message that follows the header is shown in the following diagram.<16>
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor
|
_chapt
|
_bmk
|
_hCursor (4 bytes): A 32-bit value representing the query cursor obtained from CPMCreateQueryOut for the rowset containing the bookmark.
_chapt (4 bytes): A 32-bit value representing the handle to the chapter containing the bookmark.
_bmk (4 bytes): A 32-bit value representing the handle to the bookmark for which to retrieve the approximate position.
CPMGetApproximatePositionOut
The CPMGetApproximatePositionOut message replies to a CPMGetApproximatePositionIn message describing the approximate position of the bookmark in the chapter. The format of the CPMGetApproximatePositionOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_numerator
|
_denominator
|
_numerator (4 bytes): A 32-bit unsigned integer containing the row number of the bookmark in the rowset. If there are no rows, this field MUST be set to 0x00000000.
_denominator (4 bytes): A 32-bit unsigned integer containing the number of rows in the rowset.
CPMCompareBmkIn
The CPMCompareBmkIn message requests a comparison of two bookmarks in a chapter.<17>
The format of the CPMCompareBmkIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
hCursor
|
chapt
|
bmkFirst
|
bmkSecond
|
hCursor (4 bytes): A 32-bit unsigned integer representing the handle from the CPMCreateQueryOut message for the rowset containing the bookmarks.
chapt (4 bytes): A 32-bit unsigned integer representing the handle of the chapter containing the bookmarks to compare.
bmkFirst (4 bytes): A 32-bit unsigned integer representing the handle to the first bookmark to compare.
bmkSecond (4 bytes): A 32-bit unsigned integer representing the handle to the second bookmark to compare.
CPMCompareBmkOut
The CPMCompareBmkOut message replies to a CPMCompareBmkIn message with the comparison of the two bookmarks in the chapter. The format of the CPMCompareBmkOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
dwComparison
|
dwComparison (4 bytes): A 32-bit unsigned integer. MUST be one of the following values, indicating the relative positions of the two bookmarks in the chapter.
Value
|
Meaning
|
DBCOMPARE_LT
0x00000000
|
The first bookmark is positioned before the second.
|
DBCOMPARE_EQ
0x00000001
|
The first bookmark has the same position as the second.
|
DBCOMPARE_GT
0x00000002
|
The first bookmark is positioned after the second.
|
DBCOMPARE_NE
0x00000003
|
The first bookmark does not have the same position as the second.
|
DBCOMPARE_NOTCOMPARABLE
0x00000004
|
The first bookmark is not comparable to the second.
|
CPMRestartPositionIn
The CPMRestartPositionIn message moves the fetch position for a cursor to the beginning of the chapter. As specified in section 3.1.5.2.12, the server will reply using the same message, with the results of the request contained in the _status field of the Windows Search Protocol header. <18>
The format of the CPMRestartPositionIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor (optional)
|
_chapt (optional)
|
_hCursor (4 bytes): A 32-bit value that represents the handle obtained from a CPMCreateQueryOut message and that identifies the query for which to restart the position. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
_chapt (4 bytes): A 32-bit value representing the handle of a chapter from which to retrieve rows. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
CPMFreeCursorIn
The CPMFreeCursorIn message requests the release of a cursor. The format of the CPMFreeCursorIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor
|
_hCursor (4 bytes): A 32-bit value representing the handle of the cursor from the CPMCreateQueryOut message to release.
CPMFreeCursorOut
The CPMFreeCursorOut message replies to a CPMFreeCursorIn message with the results of freeing a cursor. The format of the CPMFreeCursorOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_cCursorsRemaining
|
_cCursorsRemaining (4 bytes): A 32-bit unsigned integer indicating the number of cursors still in use for the query.
CPMDisconnect
The CPMDisconnect message ends the connection with the server.
The message MUST NOT include a body; only the message header, as specified in section 2.2.2, is sent.
CPMFindIndicesIn
The CPMFindIndicesIn <19> message requests the rowset position of the next occurrence of a document identifier.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_cWids
|
_cDepthPrev
|
_pwids (variable)
|
...
|
_prgiRowPrev (variable)
|
...
|
_cWids (4 bytes): A 32-bit unsigned integer representing the number of document identifiers to search for. This value MUST be greater than zero.
_cDepthPrev (4 bytes): A 32-bit unsigned integer specifying the number of hierarchical grouping levels leading to the previous occurrence of any of the specified document identifiers. When this value is zero it instructs the server to begin searching at the beginning of the cursor.
_pwids (variable): Array of unsigned 32-bit integers containing the document identifiers to search for. The size of the array MUST be equal to _cWids.
_prgiRowPrev (variable): Array of unsigned 32-bit integers representing the hierarchical group indices leading to the previous occurrence of any of the specified document identifiers. The size of the array MUST be equal to _cDepthPrev. If _cDepthPrev is equal to zero this field MUST be omitted.
CPMFindIndicesOut
The CPMFindIndicesOut message replies to a CPMFindIndicesIn message with the hierarchical group indices leading to the next occurrence of any of the document identifiers specified in the CPMFindIndicesIn message.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_cDepthNext
|
_prgiRowNext (variable)
|
...
|
_cDepthNext (4 bytes): A 32-bit unsigned integer specifying the number of hierarchical grouping levels leading to the next occurrence of any of the document identifiers specified in the corresponding CPMFindIndicesIn message. This value MUST be set to zero if no occurrence of document identifier has been found following the position of hierarchical group indices specified by preceding CPMFindIndicesIn message.
_prgiRowNext (variable): Array of unsigned 32-bit integers representing the hierarchical grouping indices leading to the next occurrence of any of the document identifiers specified in the corresponding CPMFindIndicesIn message. The size of the array MUST be equal to _cDepthNext. This field MUST be omitted if _cDepthNext is equal to zero.
CPMGetRowsetNotifyIn
The CPMGetRowsetNotifyIn <20> message requests the next rowset event from the server if available.
The message MUST NOT include a body; only the message header, as specified in section 2.2.2.
CPMGetRowsetNotifyOut
The CPMGetRowsetNotifyOut message replies to CPMGetRowsetNotifyIn message with oldest available rowset event. The format of the CPMGetRowsetNotifyOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
wid
|
A
|
eventType
|
rowsetItemState
|
changedItemState
|
rowsetEvent
|
rowsetEventData1
|
...
|
rowsetEventData2
|
...
|
wid (4 bytes): A 32-bit unsigned integer containing the document identifier that the event is for. This value MUST be zero if eventType is PROPAGATE_NONE or PROPAGATE_ROWSET.
A - moreEvents (1 bit): A single bit that is set to 1 only if there are additional rowset events remaining on the server.
eventType (7 bits): A 7 bit unsigned integer that MUST be one of the following values, indicating the type of event this message represents.
Value
|
Meaning
|
PROPAGATE_NONE
0
|
This response indicates that there were no available rowset events waiting on the server.
|
PROPAGATE_ADD
1
|
This response indicates that an item was added to the index that may be of interest to the query originating the rowset.
|
PROPAGATE_DELETE
2
|
This response indicates that an item was deleted from the index that may be of interest to the query originating the rowset.
|
PROPAGATE_MODIFY
3
|
This response indicates that an item was re-indexed that may be of interest to the query originating the rowset.
|
PROPAGATE_ROWSET
4
|
This response is a rowset specific notification whose meaning is interpreted by the rowsetEvent field of this message.
|
rowsetItemState (1 byte): An 8 bit unsigned integer that MUST be one of the following values if eventType is PROPAGATE_ADD, PROPAGATE_DELETE, or PROPAGATE_MODIFY. This number indicates the state of the document identifier specified by wid within the originating rowset. For other eventType values this value MUST be set to zero.
Value
|
Meaning
|
ROWSETEVENT_ITEMSTATE_NOTINROWSET
0
|
The document identifier specified by wid MUST not have been contained within the originating rowset.
|
ROWSETEVENT_ITEMSTATE_INROWSET
1
|
The document identifier speicified by wid MUST be contained within the originating rowset.
|
ROWSETEVENT_ITEMSTATE_UNKNOWN
2
|
The document identifier speicifed by wid's containment within the originating rowset has not been specified.
|
changedItemState (1 byte): An 8 bit unsigned integer that MUST be one of the following values if eventType is PROPAGATE_MODIFY. This number indicates the state of the document identifier specified by wid within the originating rowset if the same query were to be run again following the change. For other eventType values this value MUST be set to zero.
Value
|
Meaning
|
ROWSETEVENT_ITEMSTATE_NOTINROWSET
0
|
The document identifier specified by wid would NOT be contained within a subsequent query.
|
ROWSETEVENT_ITEMSTATE_INROWSET
1
|
The document identifier speicified by wid would be contained within a subsequent query.
|
ROWSETEVENT_ITEMSTATE_UNKNOWN
2
|
Whether or not the document identifier speicifed by wid would be contained within a subsequent query has not been specified.
|
rowsetEvent (1 byte): An 8 bit unsigned integer that MUST be one of the following values if eventType is PROPAGATE_ROWSET. This number indicates the type of rowset event that this message represents. For other eventType values this value MUST be set to zero.
Value
|
Meaning
|
ROWSETEVENT_TYPE_DATAEXPIRED
0
|
The data backing the rowset is no longer valid.
RowsetEventData1 and RowsetEventData2 MUST be set to zero.
|
ROWSETEVENT_TYPE_FOREGROUNDLOST
1
|
The rowset no longer has foreground priority and has been reverted to high priority. Items that may apply to this query will be indexed at a decreased rate. See section 2.2.3.34 for meaning of foreground and high priority.
RowsetEventData1 and RowsetEventData2 MUST be set to zero.
|
ROWSETEVENT_TYPE_SCOPESTATISTICS
2
|
The number of indexed items, number of items that need to be indexed, or number of items that need re-indexed has changed.
RowsetEventData1's high 32 bits contain a 32-bit unsigned integer indicating the number of items that need to be indexed that may be relevant to the originating rowset.
RowsetEventData1's low 32 bits contain a 32-bit unsigned integer indicating the number of items that need to be re-indexed that may be relevant to the originating rowset.
RowsetEventData2's high 32 bits MUST be set to zero.
RowsetEventData2's low 32 bits contain a 32-bit unsigned integer indicating the number of indexed items that may be relevant to the originating rowset.
|
rowsetEventData1 (8 bytes): A 64 bit unsigned number whose meaning is dependent on rowsetEvent. Undefined unless eventType is PROPAGATE_ROWSET.
rowsetEventData2 (8 bytes): A 64 bit unsigned number whose meaning is dependent on rowsetEvent. Undefined unless eventType is PROPAGATE_ROWSET.
CPMSetScopePrioritizationIn
The CPMSetScopePrioritizationIn <21> message requests that the server prioritize indexing of items that may be relevant to the originating query at a rate specified in the message. The format of the CPMSetScopePrioritizationIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
priority
|
eventFrequency
|
priority (4 bytes): A 32-bit unsigned integer containing the type of prioritization requested for documents that may be relevant to the originating query.
Value
|
Meaning
|
PRIORITY_LEVEL_FOREGROUND
0
|
Process items that may be relevant to the originating query before others as quickly as possible.
|
PRIORITY_LEVEL_HIGH
1
|
Process items that may be relevant to the originating query before others at the normal rate.
|
PRIORITY_LEVEL_LOW
2
|
Process items that may be relevant to the originating query before others, but after any other prioritization requests at the normal rate.
|
PRIORITY_LEVEL_DEFAULT
3
|
Process items at the normal rate.
|
eventFrequency (4 bytes): A 32-bit unsigned integer containing the minimum suggested interval in milliseconds between subsequent issued rowset events of the type ROWSETEVENT_TYPE_SCOPESTATISTICS. When eventFrequency is set to zero the server MUST NOT issue the ROWSETEVENT_TYPE_SCOPESTATISTICS events. This field MUST be set to zero when setting priority to PRIORITY_LEVEL_DEFAULT.
CPMSetScopePrioritizationOut
The CPMSetScopePrioritizationOut message replies to the CPMSetScopePrioritizationIn message.
The message MUST NOT include a body; only the message header, as specified in section 2.2.2, is sent.
CPMGetScopeStatisticsIn
The CPMGetScopeStatisticsIn <22> message requests statistics regarding the number of indexed items, the number of items needing to be indexed and the number of items needing to be re-indexed that are relevant to the originating query.
The message MUST NOT include a body; only the message header, as specified in section 2.2.2, is sent.
CPMGetScopeStatisticsOut
The CPMGetScopeStatisticsOut message replies to CPMGetScopeStatisticsIn message with the requested statistics for the originating rowset. The format of the CPMGetScopeStatisticsOut message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
dwIndexedItems
|
dwOutstandingAdds
|
dwOustandingModifies
|
dwIndexedItems (4 bytes): A 32-bit unsigned integer containing the number of items that are currently indexed that are relevant to the originating query.
dwOutstandingAdds (4 bytes): A 32-bit unsigned integer containing the number of items that have yet to be indexed that may be relevant to the originating query.
dwOustandingModifies (4 bytes): A 32-bit unsigned integer containing the number of items that need to be re-indexed that are relevant to the originating query.
22>21>20>19>18>17>16>15>14>13>
|