4.1 Query Changes Request

Considering a client that needs to send a request to Query Changes (section 2.2.2.1.3), it would create a request as follows.

 0x00000000: 0C 00 0B 00 9C CF 29 F3 39 94 06 9B 06 02 00 00
 0x00000010: EE 02 00 00 AA 02 20 00 7E B8 31 E7 45 DD AA 44
 0x00000020: AB 80 0C 75 FB D1 53 0E 7A 02 08 00 C4 27 A1 0F
 0x00000030: 77 01 16 02 06 00 03 05 00 8A 02 02 00 00 DA 02
 0x00000040: 06 00 03 00 00 CA 02 08 00 08 00 80 03 84 00 41
 0x00000050: 0B 01 AC 02 00 55 03 01


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

Protocol Version

Minimum Version

Signature

...

Cell Request Start

User Agent Start

User Agent GUID

GUID

...

User Agent Version

Version

User Agent End

Sub-request Start

...

Request ID

Request Type

Priority

Query Changes

...

A

B

C

D

E

F

G

H

Query Changes Request Arguments

...

D

Cell ID

...

Query Changes Data Constraints

...

Maximum Data Elements

...

Knowledge Start

Knowledge End

Sub-request End

Data Element Package Start

Reserved

J

Cell Request End

Protocol Version (2 bytes): 0x000C specifies the protocol version of this request.

Minimum Version (2 bytes): 0x000B specifies the minimum version of the protocol schema with which this request is compatible.

Signature: 0x9B069439F329CF9C specifies the signature of this request.

Cell Request Start (4 bytes): 0x00000206 specifies a 32-bit Stream Object Header (section 2.2.1.5.2) for a cell request start. Decoded, this has a type of 0x40, length 0, and is compound.

User Agent Start (4 bytes): 0x000002EE specifies a 32-bit Stream Object Header for user agent start. Decoded, this has a type of 0x5D, length 0, and is compound.

User Agent GUID (4 bytes): 0x002002AA specifies a 32 bit Stream Object Header for a user agent GUID. Decoded, this has a type of 0x55, length 16.

GUID (16 bytes): {"E731B87E-DD45-44AA-AB80-0C75FBD1530E"} is the GUID of the user agent.

User Agent Version (4 bytes): 0x0008027A specifies a 32-bit Stream Object Header for user agent version. Decoded, this has a type of 0x2F, length 4.

Version (4 bytes): 0x2EE127B4 specifies the version of the client.

User Agent End (2 bytes): 0x0177 specifies a 16-bit Stream Object Header for user agent end.

Sub-request Start (4 bytes): 0x00060216 specifies a 32-bit Stream Object Header for a sub-request (section 2.2.2.1) start. Decoded, this has a type of 0x42, length 3.

Request Id (1 byte): 0x03 specifies the request number as a compact unsigned 64-bit integer (section 2.2.1.1) for this request. Decoded, this represents a value of 0x1.

Request Type (1 byte): 0x05 specifies the Request Type (section 2.2.1.6) as a compact unsigned 64-bit integer. Decoded, this represents a value of 0x02.

Priority (1 byte): 0x00 specifies the priority of this sub-request as a compact unsigned 64-bit integer.

Query Changes (4 bytes): 0x0002028A specifies a 32-bit Stream Object Header for a Query Changes request (section 2.2.2.1.3). Decoded, this has a type of 0x51, length 1.

A - Reserved (1 bit): Zero specifies a reserved bit.

B - Allow Fragments (1 bit): Zero specifies that fragments are not allowed.

C - Exclude Object Data (1 bit): Zero, ignored by the server.

D - Include Filtered Out Data Elements In Knowledge (1 bit): Zero specifies that the serial numbers of filtered out data elements are not included in the response knowledge.

E – Allow Fragments 2 (1 bit):  Zero specifies that fragments are not allowed.

F - Round Knowledge to Whole Cell Changes (1 bit): Zero specifies that knowledge is not rounded to whole cell changes.

G – Return File Hash (1 bit): Zero specified that the server does not return the file hash in response.

H – Check For File Exists (1 bit): Zero, ignored by the server.

Query Changes Request Arguments (4 bytes): 0x000602DA specifies a 32-bit Stream Object Header for Query Changes request arguments. Decoded, this has a type of 0x5b, length 3.

D - Include Storage Manifest/Include Cell Changes/ Reserved2 (1 byte): 0x03 specifies that the Storage Manifest and cell changes are to be included.

Cell ID (2 bytes): 0x0000 specifies the Cell ID (section 2.2.1.10) that Query Changes are scoped to. Decoded, this represents two Null Extended GUIDs (section 2.2.1.7.1), so no scoping restriction is specified.

Query Changes Data Constraints (4 bytes): 0x000802CA specifies a 32-bit Stream Object Header for Query Changes data constraints. Decoded, this has a type of 0x59, length 4.

Maximum Data Elements (4 bytes): 0x03800008 specifies the maximum data elements to return as a compact unsigned 64-bit integer. Decoded, this has a value of 3670016.

Knowledge Start (2 bytes): 0x0084 specifies the 16-bit Stream Object Header for a Knowledge (section 2.2.1.13) start. This has a type of 0x10, length 0.

Knowledge End (1 byte): 0x41 specifies the 8-bit Stream Object Header (section 2.2.1.5.3) for a Knowledge end.

Sub-Request End (2 bytes): 0x010B specifies the 16-bit Stream Object Header for a sub-request end. Decoded, this has a type of 0x21.

Data Element Package Start (2 bytes): 0x02AC specifies the 16-bit Stream Object Header for a Data Element Package start. Decoded, this has a type of 0x15, length 1, and is compound.

Reserved (1 byte): 0x00 specifies a reserved byte.

J - Data Element Package End (1 byte): 0x55 specifies the 8-bit Stream Object Header for the Data Element Package end. This stream object was started in the Request Header (section 4.3.1).

Cell Request End (2 bytes): 0x0103 specifies the 16-bit Stream Object Header for cell request end. This stream object was started in the Request Header.