2.2.2.1 Dispatcher Request Tag Payload

The Dispatcher Request tag payload precedes all DSLR remote service request tags and payloads. (DSLR service requests are children of the Dispatcher Request tag.) It includes all information relevant to calling a remote function on a specific service: the type of request that is being made (either a one-way event or two-way request), the service on which the request is being made, the service-defined function to be called on the remote service, and a one-time unique request handle to identify the specific request.

The format for the Dispatcher Request tag payload is 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

CallingConvention

RequestHandle

ServiceHandle

FunctionHandle

CallingConvention (4 bytes): An unsigned 32-bit integer that indicates the type of request (either a two-way request or a one-way event). This field MUST be set to one of the following values. (Note that for the dispenser service calls, CreateService and DeleteService, this value MUST be dslrRequest. See sections 2.2.2.3 and 2.2.2.4 for more details about CreateService and DeleteService.)

Value

Meaning

dslrRequest

0x00000001

DSLR Two-Way Request

dslrOneWay

0x00000003

DSLR One-Way Event

RequestHandle (4 bytes): An unsigned 32-bit integer.  A client allocated handle to uniquely identify this specific request.

ServiceHandle (4 bytes): An unsigned 32-bit integer. The service handle that uniquely identifies the service on which the request is being made. This service handle is allocated by the client as part of the CreateService request. (Note that for the dispenser service calls, CreateService, and DeleteService, this value MUST be 0x00000000, which is the service handle for the dispenser service.

Value

Meaning

DispenserHandle

0x00000000

Dispenser service handle. Used only for CreateService and DeleteService messages exposed by the DSLR dispenser service.

GenericServiceHandle

0x00000001 — 0xFFFFFFFF

Generic DSLR service handle, generated by the DSLR client during the CreateService message for a given service.

FunctionHandle (4 bytes): An unsigned 32-bit integer. Function handle for the specific function being called on the remote service. This function handle is defined and exposed by the remote service that corresponds to the specified ServiceHandle. (Note that for the dispenser service calls, CreateService and DeleteService, these values MUST be 0x00000001 and 0x00000002 respectively.

Value

Meaning

CreateService

0x00000001

Create remote service. Used by the DSLR dispenser service.

DeleteService

0x00000002

Delete remote service. Used by the DSLR dispenser service.

GenericFunctionHandle

0x0000000 — 0xFFFFFFFF

Function handle for the specific function, defined and exposed by the DSLR service that corresponds to the specified ServiceHandle.