1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20 public struct TSSLSocketTransportError: TError { 21 public enum ErrorCode: TErrorCode { 22 case hostanameResolution(hostname: String) 23 case socketCreate(port: Int) 24 case connect 25 26 public var thriftErrorCode: Int { 27 switch self { 28 case .hostanameResolution: return -10000 29 case .socketCreate: return -10001 30 case .connect: return -10002 31 } 32 } 33 34 public var description: String { 35 switch self { 36 case .hostanameResolution(let hostname): return "Failed to resolve hostname: \(hostname)" 37 case .socketCreate(let port): return "Could not create socket on port: \(port)" 38 case .connect: return "Connect error" 39 } 40 } 41 42 } 43 public var error: ErrorCode = .connect 44 public var message: String? 45 public static var defaultCase: ErrorCode { return .connect } 46 47 public init() { } 48 } 49