| | |
| | | ## Base Packet Format |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | Packet Length | The total number of bytes in the packet, not including the length itself. | `u32` | |
| | | | Protocol Name | The protocol service on the server that is responsible for managing this request | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Is Request? | Whether or not this packet is for a _request_. | `bool` | |
| | | | ... | See [Request Packet Format](#request-packet-format) or [Response Packet Format](#response-packet-format) for parsing the packet depending on `Is Request?`. | ... | |
| | | | Name | Description | Type | |
| | | |---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| |
| | | | Packet Length | The total number of bytes in the packet, not including the length itself. | `u32` | |
| | | | Protocol Name | The protocol service on the server that is responsible for managing this request | [`String`](./03_rendezvous_structure.md#structure-string) | |
| | | | Is Request? | Whether or not this packet is for a _request_. | `bool` | |
| | | | ... | See [Request Packet Format](#request-packet-format) or [Response Packet Format](#response-packet-format) for parsing the packet depending on `Is Request?`. | ... | |
| | | |
| | | ## Request Packet Format |
| | | |
| | |
| | | ``` |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |----------------|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------| |
| | | | ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet. | ... | |
| | | | Call ID | The nonce token for this call to identify the response associated with this request. | `u32` | |
| | | | Method Name | The method to call on the server. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Class Versions | Version information about the data in the request | [`List`](./03_rendezvous_structure.md#list)`<`[`ClassVersion`](#class-version)`>` | |
| | | | Request Data | Raw data to pass to the request handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | |
| | | | Name | Description | Type | |
| | | |----------------|-------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------| |
| | | | ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet. | ... | |
| | | | Call ID | The nonce token for this call to identify the response associated with this request. | `u32` | |
| | | | Method Name | The method to call on the server. | [`String`](./03_rendezvous_structure.md#structure-string) | |
| | | | Class Versions | Version information about the data in the request | [`List`](./03_rendezvous_structure.md#structure-listt)`<`[`ClassVersion`](#class-version)`>` | |
| | | | Request Data | Raw data to pass to the request handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | |
| | | |
| | | ### `ClassVersion` |
| | | Example: |
| | |
| | | 00000010 6E 66 6F 00 01 00 nfo... |
| | | ``` |
| | | |
| | | | Name | Description | Type | |
| | | |----------------|---------------------------------------------------|-------------------------------------------------| |
| | | | Structure Name | The name of the structure to assign a version to. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Version | The version of the structure. | `u16` | |
| | | | Name | Description | Type | |
| | | |----------------|---------------------------------------------------|-----------------------------------------------------------| |
| | | | Structure Name | The name of the structure to assign a version to. | [`String`](./03_rendezvous_structure.md#structure-string) | |
| | | | Version | The version of the structure. | `u16` | |
| | | |
| | | ## Response Packet Format |
| | | |
| | |
| | | ### Successful Response Format |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of a successful response packet. | ... | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |
| | | | Method Name | The method that was called by the client. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Response Data | Raw data to pass to the response handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | |
| | | | Name | Description | Type | |
| | | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of a successful response packet. | ... | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |
| | | | Method Name | The method that was called by the client. | [`String`](./03_rendezvous_structure.md#structure-string) | |
| | | | Response Data | Raw data to pass to the response handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | |
| | | |
| | | ### Unsuccessful Response Format |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |-----------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of an unsuccessful response packet. | ... | |
| | | | Error Namespace | The category of error that occurred. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Error Code | The code of the error in the specified namespace | `u16` | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |
| | | | Name | Description | Type | |
| | | |-----------------|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of an unsuccessful response packet. | ... | |
| | | | Error Namespace | The category of error that occurred. | [`String`](./03_rendezvous_structure.md#structure-string) | |
| | | | Error Code | The code of the error in the specified namespace | `u16` | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |