make NIOTS compile on Linux (#29)

Motivation:

NIOTS will not work on Linux but we can at least make it not fail
compilation when compiled on Linux. That way consumers of the API can
depend on NIOTS but make sure they only use NIOTS when wrapped in a
`#if canImport(Network)` block.

Modification:

Guard everything by `#if canImport(Network)`

Result:

This package will now build on Linux (without providing any useful
code).
This commit is contained in:
Johannes Weiss 2019-03-25 14:49:35 +00:00 committed by Cory Benfield
parent 501197f000
commit d68f9d1f8e
18 changed files with 53 additions and 2 deletions

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import NIO import NIO
import NIOTransportServices import NIOTransportServices
import NIOHTTP1 import NIOHTTP1
@ -69,3 +71,4 @@ let channel = try! NIOTSConnectionBootstrap(group: group)
// Wait for the request to complete // Wait for the request to complete
try! channel.closeFuture.wait() try! channel.closeFuture.wait()
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import NIO import NIO
import NIOTransportServices import NIOTransportServices
import NIOHTTP1 import NIOHTTP1
@ -48,3 +50,4 @@ print("Server listening on \(channel.localAddress!)")
// Wait for the request to complete // Wait for the request to complete
try! channel.closeFuture.wait() try! channel.closeFuture.wait()
#endif

View File

@ -13,11 +13,12 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import NIO import NIO
import Dispatch import Dispatch
import Network import Network
public final class NIOTSConnectionBootstrap { public final class NIOTSConnectionBootstrap {
private let group: NIOTSEventLoopGroup private let group: NIOTSEventLoopGroup
private var channelInitializer: ((Channel) -> EventLoopFuture<Void>)? private var channelInitializer: ((Channel) -> EventLoopFuture<Void>)?
@ -219,3 +220,4 @@ internal struct ChannelOptionStorage {
return applyPromise.futureResult return applyPromise.futureResult
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Foundation import Foundation
import NIO import NIO
import NIOConcurrencyHelpers import NIOConcurrencyHelpers
@ -807,3 +809,4 @@ fileprivate extension ChannelState where ActiveSubstate == NIOTSConnectionChanne
} }
} }
} }
#endif

View File

@ -14,6 +14,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Dispatch import Dispatch
import Foundation import Foundation
import Network import Network
@ -220,3 +221,4 @@ extension NIOTSEventLoop {
assert(oldChannel != nil) assert(oldChannel != nil)
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Foundation import Foundation
import NIO import NIO
import NIOConcurrencyHelpers import NIOConcurrencyHelpers
@ -82,3 +84,4 @@ public final class NIOTSEventLoopGroup: EventLoopGroup {
return EventLoopIterator(self.eventLoops) return EventLoopIterator(self.eventLoops)
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import NIO import NIO
import Dispatch import Dispatch
import Network import Network
@ -308,3 +310,4 @@ private class AcceptHandler: ChannelInboundHandler {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Foundation import Foundation
import NIO import NIO
import NIOFoundationCompat import NIOFoundationCompat
@ -421,3 +423,4 @@ extension NIOTSListenerChannel {
self.becomeActive0(promise: promise) self.becomeActive0(promise: promise)
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Network import Network
import NIO import NIO
@ -66,3 +68,4 @@ public enum NIOTSNetworkEvents {
public let endpoint: NWEndpoint public let endpoint: NWEndpoint
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Darwin import Darwin
import Foundation import Foundation
import NIO import NIO
@ -121,3 +123,4 @@ internal extension SocketAddress {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Foundation import Foundation
import NIO import NIO
import NIOFoundationCompat import NIOFoundationCompat
@ -266,3 +268,4 @@ extension StateManagedChannel {
self.beginActivating0(to: endpoint, promise: promise) self.beginActivating0(to: endpoint, promise: promise)
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import Foundation import Foundation
import NIO import NIO
import Network import Network
@ -82,3 +84,4 @@ internal extension NWProtocolTCP.Options {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import Network import Network
import NIO import NIO
@ -638,3 +640,4 @@ class NIOTSConnectionChannelTests: XCTestCase {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import NIO import NIO
import NIOTransportServices import NIOTransportServices
@ -491,3 +493,4 @@ class NIOTSEndToEndTests: XCTestCase {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import NIO import NIO
import NIOConcurrencyHelpers import NIOConcurrencyHelpers
@ -127,3 +129,4 @@ class NIOTSEventLoopTest: XCTestCase {
XCTAssertNil(weakEL) XCTAssertNil(weakEL)
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import Network import Network
import NIO import NIO
@ -219,3 +221,4 @@ class NIOTSListenerChannelTests: XCTestCase {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import NIO import NIO
import Network import Network
@ -162,3 +164,4 @@ class NIOTSSocketOptionTests: XCTestCase {
} }
} }
} }
#endif

View File

@ -13,6 +13,8 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if canImport(Network)
import XCTest import XCTest
import NIO import NIO
import Network import Network
@ -121,4 +123,4 @@ class NIOTSSocketOptionsOnChannelTests: XCTestCase {
try self.assertChannelOptionAfterCreation(option: SocketOption(level: SOL_SOCKET, name: SO_KEEPALIVE), initialValue: 0, testAlternativeValue: 1) try self.assertChannelOptionAfterCreation(option: SocketOption(level: SOL_SOCKET, name: SO_KEEPALIVE), initialValue: 0, testAlternativeValue: 1)
} }
} }
#endif