Namespace DotBoxD.Services.Transport
Classes
Section titled “Classes”SingleConnectionServerTransport
Server transport that accepts one already-established connection.
Client transport over an already-established connection.
DotBoxD connection over a duplex stream, including named pipe streams.
Structs
Section titled “Structs”Owns one received wire frame. The frame can be backed by the legacy DotBoxD.Services.Buffers.Payload
owner or by a pooled writer transferred by a low-allocation transport.
Copies of this value alias one logical owner, so callers must coordinate detachment. A
writer-backed owner can be detached only once across all aliases; stale writer aliases fail
closed and cannot access or dispose a later pooled-writer lease. `DotBoxD.Services.Transport.RpcFrame.Dispose` is
idempotent across aliases and both backing owners. Follow the boolean contract returned by
RpcPeerFrameProcessor.ShouldDisposeAsync inside RpcPeerReadLoop:
true means the caller owns the frame, false means the read
loop retained ownership (for example, a StreamItem).
Interfaces
Section titled “Interfaces”A duplex, framed, bidirectional channel — the transport unit a DotBoxD.Services.Peer.RpcPeer
runs on. Responses flow back over the same channel, so it is always bidirectional even when the
call direction is one-way. Transports return this directly; implement it to add a custom transport.
Optional low-allocation transport contract for channels that can transfer ownership
of complete pooled frames instead of copying them into a new DotBoxD.Services.Buffers.Payload.
Optional low-allocation transport contract for channels that can complete send/receive
operations without allocating a System.Threading.Tasks.Task for each frame.
Represents a server-side transport that accepts incoming connections.
Represents a transport layer for establishing connections.
Controls what a bounded DotBoxD queue does when it is full.