Required Operations

All Request Encoding as Objects implementations must support the following required operations.

Hello

Table 2. hello operation

Field

Use / Value

operation

"reo:hello"

version

Version of Request Encoding as Objects protocols supported.

server-id

UUID, this server's unique id.

server-addr

URL, address of server.

Call

Table 3. call operation

Field

Use / Value

operation

"reo:call"

call-id

UUID, for async operations

object

UUID, object's unique id.

method

STRING, method name.

args

LIST of ANY, arguments to method.

Result

Table 4. result operation

Field

Use / Value

operation

"reo:result"

call-id

UUID, for async operations

result

ANY, result of method call.

error

ANY, error code/message if error occured.

In a "reo:result", the error key must be present only on an exception, otherwise the call was successful. result may contain any partial results even in the case of an exception. call-id is optional and is used for asynchronous operation.

Operation-Error

Table 5. operation-error operation

Field

Use / Value

operation

"reo:operation-error"

request

DICTIONARY, failed operation.

error

ANY, error code/message.

"reo:operation-error" must be returned when an operation is received that the receiver doesn't know what to do with or finds an error in decoding. The original `request' is passed back unchanged. If no error is provided, it defaults to "Unknown operation".