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.
This is a value type and may be copied. Ownership of the underlying `DotBoxD.Services.Buffers.Payload` or
`DotBoxD.Services.Buffers.PooledBufferWriter` transfers only through `DotBoxD.Services.Transport.RpcFrame.DetachPayload`; otherwise
callers dispose it through `DotBoxD.Services.Transport.RpcFrame.Dispose`. 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). Both backing owners are idempotent, so double-dispose is safe.
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.