2.2.1.16 CRestrictionArray

The CRestrictionArray structure contains an array of restriction nodes. The first two fields (count and isPresent) are not padded and will start where the previous structure in the message ended (as indicated by the "previous structure" entry in the diagram below). The 1-byte length of "previous structure" is arbitrary and is not meant to suggest that count will begin on any particular boundary. However, the Restriction field MUST be aligned to begin at a multiple of 4 bytes from the beginning of the message, and hence the format is depicted as follows.


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

(previous structure)

count

isPresent

_padding (variable)

...

Restriction (variable)

...

count (1 byte): An 8-bit unsigned integer specifying the number of CRestriction records contained in the Restriction field.

Note This field MUST be set to 0x01.

isPresent (1 byte): An 8-bit unsigned integer. MUST be set to one of the following values.

Value

Meaning

0x00

The _padding and Restriction fields are omitted.

0x01

The _padding and Restriction fields are present.

_padding (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver.

Note This field MUST be omitted if the value of isPresent is set to 0x00.

Restriction (variable): A CRestriction structure, specifying a node of a query command tree.

Note Restriction MUST be omitted if the value of isPresent is set to 0x00.