func valueFor()

in Sources/NIOTransportServices/TCPOptions+SocketChannelOption.swift [55:84]


    func valueFor(socketOption option: ChannelOptions.Types.SocketOption) throws -> SocketOptionValue {
        switch (option.level, option.name) {
        case (IPPROTO_TCP, TCP_NODELAY):
            return self.noDelay ? 1 : 0
        case (IPPROTO_TCP, TCP_NOPUSH):
            return self.noPush ? 1 : 0
        case (IPPROTO_TCP, TCP_NOOPT):
            return self.noOptions ? 1 : 0
        case (IPPROTO_TCP, TCP_KEEPCNT):
            return Int32(self.keepaliveCount)
        case (IPPROTO_TCP, TCP_KEEPALIVE):
            return Int32(self.keepaliveIdle)
        case (IPPROTO_TCP, TCP_KEEPINTVL):
            return Int32(self.keepaliveInterval)
        case (IPPROTO_TCP, TCP_MAXSEG):
            return Int32(self.maximumSegmentSize)
        case (IPPROTO_TCP, TCP_CONNECTIONTIMEOUT):
            return Int32(self.connectionTimeout)
        case (IPPROTO_TCP, TCP_RXT_CONNDROPTIME):
            return Int32(self.connectionDropTime)
        case (IPPROTO_TCP, TCP_RXT_FINDROP):
            return self.retransmitFinDrop ? 1 : 0
        case (IPPROTO_TCP, TCP_SENDMOREACKS):
            return self.disableAckStretching ? 1 : 0
        case (SOL_SOCKET, SO_KEEPALIVE):
            return self.enableKeepalive ? 1 : 0
        default:
            throw NIOTSErrors.UnsupportedSocketOption(optionValue: option)
        }
    }