Skip to content
Merged
Show file tree
Hide file tree
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
6 changes: 5 additions & 1 deletion quest/m1/ffi-shape/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,16 @@ work no child does:
- A layers guide under `doc/lib` mapping net, media, json, flate, audio, and video to
each language's module, linked from every binding page.
- The bindings section of the following release's upgrade page: old call to
new call per language.
new call per language, including every rename the children made (#4697:
`subscribe` to `consume`, Go's `All(ctx)` iterators and `ConnectionStatus*`
constants, Kotlin and Dart `announced().updates()`, config records in place
of setters and named parameters).
- `just test interop --all` green on the finished line.

## Required

- [Net](/quest/m1/ffi-shape/net.md) - client and server take config records, snapshots are records, and the verbs match moq-net
- [Request accept](/quest/m1/ffi-shape/request-accept.md) - a request's origins are `accept()` arguments, removing the last root setters
- [Media](/quest/m1/ffi-shape/media.md) - catalog, import, and container consume move under `media`
- [Codecs](/quest/m1/ffi-shape/codec.md) - audio and video encoders and decoders move under their own namespaces with one constructor shape

Expand Down
24 changes: 24 additions & 0 deletions quest/m1/ffi-shape/request-accept.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# [XS] A request's origins are accept() arguments

## Goal

`MoqRequest` loses its `set_publish`/`set_consume` setters. The origins a
server serves an incoming session with are arguments to `accept()`, in
moq-ffi and every wrapper, so the root namespace has no setters left.

## Plan

[Net](/quest/m1/ffi-shape/net.md) (#4697) replaced every other root setter
with config records but left these two. moq-net's server request takes its
origins through consuming `with_publisher`/`with_subscriber` builders before
`ok()`; a shared FFI handle can't consume itself, so the origins move onto
`accept()` instead. Use one optional argument per origin, or a small
record if the wrapper idioms read better with one.

`MoqServerConfig.publish`/`consume` stay as the server defaults that seed each
request, and an omitted argument inherits them. Today `set_publish(None)` can
also clear an inherited origin; keep or drop that case on purpose, and test
inherited, overridden, and (if kept) cleared origins. Update the `doc/lib`
samples and the server examples in every binding.

Public API: breaking in every binding, on `dev` with the line. Wire: none.