CloseMode
Specify what kind of close operation is requested.
enum CloseMode
Specify what kind of close operation is requested.
enum CloseMode
import NIOCore
The core abstractions that make up SwiftNIO.
case output
Close the output (writing) side of the Channel
without closing the actual file descriptor. This is an optional mode which means it may not be supported by all Channel
implementations.
case input
Close the input (reading) side of the Channel
without closing the actual file descriptor. This is an optional mode which means it may not be supported by all Channel
implementations.
case all
Close the whole `Channel (file descriptor).
protocol Channel : AnyObject, ChannelOutboundInvoker, _NIOPreconcurrencySendable
A Channel
is easiest thought of as a network socket. But it can be anything that is capable of I/O operations such as read, write, connect, and bind.
protocol MulticastChannel : Channel
A MulticastChannel
is a Channel
that supports IP multicast operations: that is, a channel that can join multicast groups.
protocol ChannelHandler : AnyObject
Base protocol for handlers that handle I/O events or intercept an I/O operation.
protocol ChannelOutboundHandler : _ChannelOutboundHandler, _EmittingChannelHandler
ChannelHandler
which handles outbound I/O events or intercept an outbound I/O operation for a Channel
.
protocol ChannelInboundHandler : _ChannelInboundHandler, _EmittingChannelHandler
ChannelHandler
which handles inbound I/O events for a Channel
.
typealias ChannelDuplexHandler = ChannelInboundHandler & ChannelOutboundHandler
A combination of ChannelInboundHandler
and ChannelOutboundHandler
.
final class ChannelHandlerContext
Every ChannelHandler
has – when added to a ChannelPipeline
– a corresponding ChannelHandlerContext
which is the way ChannelHandler
s can interact with other ChannelHandler
s in the pipeline.
final class ChannelPipeline
A list of ChannelHandler
s that handle or intercept inbound events and outbound operations of a Channel
. ChannelPipeline
implements an advanced form of the Intercepting Filter pattern to give a user full control over how an event is handled and how the ChannelHandler
s in a pipeline interact with each other.
protocol RemovableChannelHandler : ChannelHandler
A RemovableChannelHandler
is a ChannelHandler
that can be dynamically removed from a ChannelPipeline
whilst the Channel
is operating normally. A RemovableChannelHandler
is required to remove itself from the ChannelPipeline
(using ChannelHandlerContext.leavePipeline
) as soon as possible.
struct NIOAny
NIOAny
is an opaque container for values of any type, similar to Swift’s builtin Any
type. Contrary to Any
the overhead of NIOAny
depends on the the type of the wrapped value. Certain types that are important for the performance of a SwiftNIO application like ByteBuffer
, FileRegion
and AddressEnvelope<ByteBuffer>
can be expected to be wrapped almost without overhead. All others will have similar performance as if they were passed as an Any
as NIOAny
just like Any
will contain them within an existential container.
enum ChannelEvent
An Channel
related event that is passed through the ChannelPipeline
to notify the user.
struct ChannelShouldQuiesceEvent
A Channel
user event that is sent when the Channel
has been asked to quiesce.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable : Equatable
A type that can be hashed into a Hasher
to produce an integer hash value.
protocol Sendable
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.