From 2ee18e7be94ba598747ebd9d7a6472a8c9ab45b4 Mon Sep 17 00:00:00 2001 From: "Dr. Michael Lauer" Date: Tue, 11 May 2021 13:07:02 +0200 Subject: [PATCH] fix compilation On Linux, there are no optional methods in protocols --- Package.swift | 8 ++++---- .../CornucopiaStreams/BLE/AccessoryManager.swift | 2 +- .../FileHandleInputStream.swift | 16 ++++++++++++++-- .../FileHandleOutputStream.swift | 6 +++++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Package.swift b/Package.swift index 485eb8c..ee43724 100644 --- a/Package.swift +++ b/Package.swift @@ -4,10 +4,10 @@ import PackageDescription let package = Package( name: "CornucopiaStreams", platforms: [ - .macOS(.v10_13), - .iOS(.v10), - .tvOS(.v10), - .watchOS(.v3), + .macOS("10.15.4"), + .iOS("13.4"), + .tvOS("13.4"), + .watchOS("6"), ], products: [ .library( diff --git a/Sources/CornucopiaStreams/BLE/AccessoryManager.swift b/Sources/CornucopiaStreams/BLE/AccessoryManager.swift index f10bd8d..ace77f6 100644 --- a/Sources/CornucopiaStreams/BLE/AccessoryManager.swift +++ b/Sources/CornucopiaStreams/BLE/AccessoryManager.swift @@ -110,7 +110,7 @@ extension BLEAccessoryManager: CBPeripheralDelegate { self.activeSessions[peripheral.identifier] = streamProvider guard let handler = self.pendingConnections.removeValue(forKey: service.uuid) else { - os_log("Did discover characteristics for service %@, but there is no pending connection for this UUID anymore.", service.uuid.description) + os_log("Did discover characteristics for service %@, but there is no pending connection for this UUID anymore.", log: log, type: .info, service.uuid.description) return } let result = FindServiceResult.success(streamProvider) diff --git a/Sources/CornucopiaStreams/FileHandleStreams/FileHandleInputStream.swift b/Sources/CornucopiaStreams/FileHandleStreams/FileHandleInputStream.swift index 46477ca..c15ac75 100644 --- a/Sources/CornucopiaStreams/FileHandleStreams/FileHandleInputStream.swift +++ b/Sources/CornucopiaStreams/FileHandleStreams/FileHandleInputStream.swift @@ -37,11 +37,19 @@ class FileHandleInputStream: InputStream { guard self._streamStatus != .open else { return } _ = NotificationCenter.default.addObserver(forName: Notification.Name.NSFileHandleDataAvailable, object: self.fileHandle, queue: nil) { notification in - self.delegate?.stream(self, handle: .hasBytesAvailable) + #if os(Linux) + self._delegate?.stream(self, handle: .hasBytesAvailable) + #else + self._delegate?.stream?(self, handle: .hasBytesAvailable) + #endif } self.fileHandle.waitForDataInBackgroundAndNotify() self._streamStatus = .open + #if os(Linux) self.delegate?.stream(self, handle: .openCompleted) + #else + self.delegate?.stream?(self, handle: .openCompleted) + #endif } override var hasBytesAvailable: Bool { true } @@ -49,7 +57,11 @@ class FileHandleInputStream: InputStream { override func read(_ buffer: UnsafeMutablePointer, maxLength len: Int) -> Int { guard _streamStatus == .open else { return 0 } guard let data = try? self.fileHandle.read(upToCount: 1) else { - self.delegate?.stream(self, handle: .endEncountered) + #if os(Linux) + self._delegate?.stream(self, handle: .endEncountered) + #else + self._delegate?.stream?(self, handle: .endEncountered) + #endif return 0 } if data.count > 0 { diff --git a/Sources/CornucopiaStreams/FileHandleStreams/FileHandleOutputStream.swift b/Sources/CornucopiaStreams/FileHandleStreams/FileHandleOutputStream.swift index 8350129..87dfbe2 100644 --- a/Sources/CornucopiaStreams/FileHandleStreams/FileHandleOutputStream.swift +++ b/Sources/CornucopiaStreams/FileHandleStreams/FileHandleOutputStream.swift @@ -39,7 +39,11 @@ class FileHandleOutputStream: OutputStream { override func open() { guard self._streamStatus != .open else { return } self._streamStatus = .open - self.delegate?.stream(self, handle: .openCompleted) + #if os(Linux) + _delegate?.stream(self, handle: .openCompleted) + #else + _delegate?.stream?(self, handle: .openCompleted) + #endif } override var hasSpaceAvailable: Bool { true }