瀏覽代碼

Use FileHandle instead of io.swift. (#408)

Martin Petrov 6 年之前
父節點
當前提交
1d056f16db
共有 2 個文件被更改,包括 2 次插入67 次删除
  1. 0 64
      Sources/protoc-gen-swiftgrpc/io.swift
  2. 2 3
      Sources/protoc-gen-swiftgrpc/main.swift

+ 0 - 64
Sources/protoc-gen-swiftgrpc/io.swift

@@ -1,64 +0,0 @@
-/*
- * Copyright 2017, gRPC Authors All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import Foundation
-
-// The I/O code below is derived from Apple's swift-protobuf project.
-// https://github.com/apple/swift-protobuf
-// BEGIN swift-protobuf derivation
-
-#if os(Linux)
-  import Glibc
-#else
-  import Darwin.C
-#endif
-
-enum PluginError: Error {
-  /// Raised for any errors reading the input
-  case readFailure
-}
-
-// Alias clib's write() so Stdout.write(bytes:) can call it.
-private let _write = write
-
-class Stdin {
-  static func readall() throws -> Data {
-    let fd: Int32 = 0
-    let buffSize = 32
-    var buff = [UInt8]()
-    while true {
-      var fragment = [UInt8](repeating: 0, count: buffSize)
-      let count = read(fd, &fragment, buffSize)
-      if count < 0 {
-        throw PluginError.readFailure
-      }
-      if count < buffSize {
-        buff += fragment[0..<count]
-        return Data(bytes: buff)
-      }
-      buff += fragment
-    }
-  }
-}
-
-class Stdout {
-  static func write(bytes: Data) {
-    bytes.withUnsafeBytes { (p: UnsafePointer<UInt8>) -> Void in
-      _ = _write(1, p, bytes.count)
-    }
-  }
-}
-
-// END swift-protobuf derivation

+ 2 - 3
Sources/protoc-gen-swiftgrpc/main.swift

@@ -95,7 +95,7 @@ func main() throws {
   var response = Google_Protobuf_Compiler_CodeGeneratorResponse()
   var response = Google_Protobuf_Compiler_CodeGeneratorResponse()
 
 
   // read plugin input
   // read plugin input
-  let rawRequest = try Stdin.readall()
+  let rawRequest = FileHandle.standardInput.readDataToEndOfFile()
   let request = try Google_Protobuf_Compiler_CodeGeneratorRequest(serializedData: rawRequest)
   let request = try Google_Protobuf_Compiler_CodeGeneratorRequest(serializedData: rawRequest)
 
 
   let options = try GeneratorOptions(parameter: request.parameter)
   let options = try GeneratorOptions(parameter: request.parameter)
@@ -116,8 +116,7 @@ func main() throws {
   }
   }
 
 
   // return everything to the caller
   // return everything to the caller
-  let serializedResponse = try response.serializedData()
-  Stdout.write(bytes: serializedResponse)
+  FileHandle.standardOutput.write(try response.serializedData())
 }
 }
 
 
 do {
 do {