0001    import Echo
0002    import Foundation
0003    
0004    #if os(Linux)
0005    import Glibc
0006    #else
0007    import Darwin
0008    #endif
0009    
0010    public enum EncodingType
Data.swift:8
    static var encodingType: EncodingType { get }
Data.swift:13
    public static var encodingType: EncodingType {
{ 0011 case UTF8
Data.swift:14
        return .UTF8
Vaquita.swift:17
        case UTF8:
Vaquita.swift:26
        case UTF8:
0012 0013 var typeForEncoding: Any.Type { 0014 0015 let type: Any.Type 0016 switch self { 0017 case UTF8: 0018 type = UInt8.self 0019 } 0020 0021 return type 0022 } 0023 0024 var encoding
Data.swift:60
            encoding: UInt8.encodingType.encoding, freeWhenDone: false) else {
: UInt { 0025 switch self { 0026 case UTF8: 0027 return NSUTF8StringEncoding 0028 } 0029 } 0030 } 0031 0032 public enum FileError
Vaquita.swift:58
            throw FileError.OpenFailed
Vaquita.swift:88
            throw FileError.OpenFailed
: ErrorType { 0033 case ReadFailed 0034 case WriteFailed 0035 case OpenFailed
Vaquita.swift:58
            throw FileError.OpenFailed
Vaquita.swift:88
            throw FileError.OpenFailed
0036 } 0037 0038 public class Vaquita { 0039 0040 static let fileQueue
Vaquita.swift:45
        dispatch_async(fileQueue) {
Vaquita.swift:75
        dispatch_async(fileQueue) {
= dispatch_queue_create("com.vaquita.file", 0041 DISPATCH_QUEUE_SERIAL) 0042 0043 public class func readFile(path path: String, 0044 handler: (data: Data?, error: ErrorType?) -> ()) { 0045 dispatch_async(fileQueue) { 0046 do { 0047 let data = try self.readFileSync(path: path) 0048 handler(data: data, error: nil) 0049 } catch { 0050 handler(data: nil, error: error) 0051 } 0052 } 0053 } 0054 0055 public class func readFileSync
Vaquita.swift:47
                let data = try self.readFileSync(path: path)
(path path: String) throws -> Data { 0056 let fileptr = fopen(path, "rb") 0057 if fileptr == nil { 0058 throw FileError.OpenFailed 0059 } 0060 fseek(fileptr, 0, SEEK_END) 0061 let fileLength = ftell(fileptr) 0062 rewind(fileptr) 0063 0064 let buffer: UnsafeMutablePointer<UInt8> = 0065 UnsafeMutablePointer.alloc(fileLength) 0066 0067 fread(buffer, fileLength, 1, fileptr) 0068 fclose(fileptr) 0069 0070 return Data(bytes: buffer, count: fileLength); 0071 } 0072 0073 public class func writeData(data: Data, toFilePath path: String, 0074 handler: (error: ErrorType?) -> ()) { 0075 dispatch_async(fileQueue) { 0076 do { 0077 try self.writeDataSync(data, toFilePath: path) 0078 handler(error: nil) 0079 } catch { 0080 handler(error: error) 0081 } 0082 } 0083 } 0084 0085 public class func writeDataSync
Vaquita.swift:77
                try self.writeDataSync(data, toFilePath: path)
(data: Data, toFilePath path: String) throws { 0086 let fileptr = fopen(path, "w") 0087 if fileptr == nil { 0088 throw FileError.OpenFailed 0089 } 0090 fwrite(data.bytes, 1, data.size, fileptr) 0091 fclose(fileptr) 0092 } 0093 } 0094