sco_net_v1.send_channel
Queues len bytes on channel_fqn to the other peers (only the host for SCO_NET_TO_HOST). Copies buf; never blocks. SCO_BAD_ARG: a name outside this plugin’s id, len over the channel’s max_len, buf NULL with len > 0, or the wrong direction (a FROM_HOST channel from a joiner, a TO_HOST channel from the host). SCO_NOT_FOUND: this plugin hasn’t registered the channel. SCO_UNAVAILABLE: no active session. SCO_TOO_MANY: over the send quota, or the plugin’s outgoing queue is full; dropped. A message no other peer has a channel for is dropped silently.
Signature
Section titled “Signature”sco_result (*)(sco_plugin *, const char *, const void *, uint32_t)Service and availability
Section titled “Service and availability”| Property | Value |
|---|---|
| Symbol | sco_net_v1.send_channel |
| Record ID | sco-net-v1-send-channel |
| Service | sco.net |
| Table | sco_net_v1 |
| Version macro | SCO_NET_VERSION_1_0 |
| Packed table version | 65536 |
| Since / availability | size >= 40; 1.0 |
| Complete member extent (x64 bytes) | 40 |
| Table size (x64 bytes) | 64 |
Parameters and buffers
Section titled “Parameters and buffers”sco_result (*send_channel)(sco_plugin* self, const char* channel_fqn, const void* buf, uint32_t len);
Queues len bytes on channel_fqn to the other peers (only the host for SCO_NET_TO_HOST). Copies buf; never blocks. SCO_BAD_ARG: a name outside this plugin’s id, len over the channel’s max_len, buf NULL with len > 0, or the wrong direction (a FROM_HOST channel from a joiner, a TO_HOST channel from the host). SCO_NOT_FOUND: this plugin hasn’t registered the channel. SCO_UNAVAILABLE: no active session. SCO_TOO_MANY: over the send quota, or the plugin’s outgoing queue is full; dropped. A message no other peer has a channel for is dropped silently.
Results and failures
Section titled “Results and failures”Absent table: query_service NOT_FOUND. Stopped result methods: UNAVAILABLE; self-taking methods reject invalid/released self with BAD_ARG; allocation exceptions: TOO_MANY. Additional failures/output state unspecified unless described in the buffer contract.
Absent capability
Section titled “Absent capability”Absent table: query_service NOT_FOUND.
Ownership
Section titled “Ownership”Caller buffers; sends copied, callbacks borrow buf for call only. Host owns channels/messages; no allocation transfer.
Thread affinity
Section titled “Thread affinity”Any thread; callbacks game thread. Callbacks may call any method in this table.
Callback context
Section titled “Callback context”callbacks game thread.
Reentrancy
Section titled “Reentrancy”Callbacks may call any method in this table.
Cleanup and cancellation
Section titled “Cleanup and cancellation”OK means queued, not delivery acknowledgement. Quota/queue failure drops send; no matching peer channel drops silently; unload drops queued messages. Retained-provider faults skip owner resource-release hooks and require restart; backing resources remain retained, not safe for cached calls.
Language mappings
Section titled “Language mappings”Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.
| Language | Catalogue status | Source evidence / wrapper tokens |
|---|---|---|
| c | direct | include/sco_net.h(*send_channel) |
| cpp | typed-wrapper | include/scosdk/net.hppreturn t_->send_channel(self_, name_.c_str(), data.data(), static_cast<uint32_t>(data.size())); |
| csharp | unsupported | docs/sdk-csharp.mdThere are no C# wrappers for |
| lua | unsupported | docs/net.mdThe C# ( |
Examples
Section titled “Examples”None identified in the catalogue; this is not proof none can exist.
ABI pins prove layout, not semantic behavior or a live game session.