mirror of
https://github.com/wnagrodzki/SwiftLogger.git
synced 2025-04-07 04:51:52 +02:00
53 lines
1.3 KiB
Swift
53 lines
1.3 KiB
Swift
//
|
|
// OSFileHandle.swift
|
|
// Logger
|
|
//
|
|
// Created by Wojciech Nagrodzki on 30/10/2019.
|
|
// Copyright © 2019 Wojciech Nagrodzki. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
protocol OSFileHandle {
|
|
func osSeekToEndOfFile() throws -> UInt64
|
|
func osWrite(_ data: Data) throws
|
|
func osSynchronizeFile() throws
|
|
func osCloseFile() throws
|
|
}
|
|
|
|
extension FileHandle: OSFileHandle {
|
|
|
|
func osSeekToEndOfFile() throws -> UInt64 {
|
|
if #available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
|
|
var offsetInFile: UInt64 = 0
|
|
try __seek(toEndReturningOffset:&offsetInFile)
|
|
return offsetInFile
|
|
} else {
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
func osWrite(_ data: Data) throws {
|
|
if #available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
|
|
try __write(data, error: ())
|
|
} else {
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
func osSynchronizeFile() throws {
|
|
if #available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
|
|
try synchronize()
|
|
} else {
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
func osCloseFile() throws {
|
|
if #available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
|
|
try close()
|
|
} else {
|
|
fatalError()
|
|
}
|
|
}
|
|
}
|