Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 26 additions & 34 deletions abi-versions/vNEXT/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1534,51 +1534,30 @@ Returned `status` value is:

### Functions exposed by the host

#### `proxy_register_shared_queue`
#### `proxy_open_shared_queue`

Comment thread
PiotrSikora marked this conversation as resolved.
* params:
- `i32 (const char *) name_data`
- `i32 (size_t) name_size`
- `i32 (const char *) queue_name_data`
- `i32 (size_t) queue_name_size`
- `i32 (bool) create_if_not_exist`
- `i32 (uint32_t *) return_queue_id`
* returns:
- `i32 (`[`proxy_status_t`]`) status`

Registers shared queue under a name (`name_data`, `name_size`).

If the named queue already exists, then it's going to be opened
instead of creating a new empty queue.

Items can be enqueued/dequeued on the created/opened queue using
[`proxy_enqueue_shared_queue`] and/or [`proxy_dequeue_shared_queue`]
with `return_queue_id`.

Returned `status` value is:
- `OK` on success.
- `INVALID_MEMORY_ACCESS` when `name_data`, `name_size`
and/or `return_queue_id` point to invalid memory address.


#### `proxy_resolve_shared_queue`

* params:
- `i32 (const char *) vm_id_data`
- `i32 (size_t) vm_id_size`
- `i32 (const char *) name_data`
- `i32 (size_t) name_size`
- `i32 (uint32_t *) return_queue_id`
* returns:
- `i32 (`[`proxy_status_t`]`) status`
Opens named queue (`queue_name_data`, `queue_name_size`).

Resolves existing shared queue using the provided VM ID (`vm_id_data`,
`vm_id_size`) and name (`name_data`, `name_size`).
If `create_if_not_exist` is `true` and there is no shared queue with
the given name, then it will be created.

Items can be enqueued/dequeued on the opened queue using
[`proxy_enqueue_shared_queue`] and/or [`proxy_dequeue_shared_queue`]
with `return_queue_id`.

Returned `status` value is:
- `OK` on success.
- `NOT_FOUND` when the requested queue was not found.
- `OK` on success when opening existing queue.
- `CREATED` on success when a queue with the given name was created.
- `NOT_FOUND` when `create_if_not_exist` is `false` and no shared queue
with the given name exists.
- `INVALID_MEMORY_ACCESS` when `vm_id_data`, `vm_id_size`, `name_data`,
`name_size` and/or `return_queue_id` point to invalid memory address.

Expand Down Expand Up @@ -1622,6 +1601,18 @@ Returned `status` value is:
and/or `return_value_size` point to invalid memory address.


#### `proxy_delete_shared_queue`

* params:
- `i32 (uint32_t) queue_id`
* returns:
- `i32 (`[`proxy_status_t`]`) status`

Deletes previously created shared queue (`queue_id`).
- `OK` on success.
- `UNKNOWN_RESOURCE_ID` for unknown `queue_id`.


### Callbacks exposed by the Wasm module

#### `proxy_on_queue_ready`
Expand Down Expand Up @@ -2048,6 +2039,7 @@ changes to unrelated connections/requests.
- `INTERNAL_FAILURE` = `10`
- `UNIMPLEMENTED` = `12`
- `UNKNOWN_RESOURCE_ID` = `13`
- `CREATED` = `14`


#### `proxy_action_t`
Expand Down Expand Up @@ -2185,10 +2177,10 @@ changes to unrelated connections/requests.
[`proxy_on_grpc_close`]: #proxy_on_grpc_close
[`proxy_set_shared_data`]: #proxy_set_shared_data
[`proxy_get_shared_data`]: #proxy_get_shared_data
[`proxy_register_shared_queue`]: #proxy_register_shared_queue
[`proxy_resolve_shared_queue`]: #proxy_resolve_shared_queue
[`proxy_open_shared_queue`]: #proxy_open_shared_queue
[`proxy_enqueue_shared_queue`]: #proxy_enqueue_shared_queue
[`proxy_dequeue_shared_queue`]: #proxy_dequeue_shared_queue
[`proxy_delete_shared_queue`]: #proxy_delete_shared_queue
[`proxy_on_queue_ready`]: #proxy_on_queue_ready
[`proxy_define_metric`]: #proxy_define_metric
[`proxy_record_metric`]: #proxy_record_metric
Expand Down