ably-cocoa/Source/ARTRealtimeTransport.m

52 lines
1.7 KiB
Objective-C

#import <Foundation/Foundation.h>
#import "ARTRealtimeTransport.h"
@implementation ARTRealtimeTransportError
- (instancetype)initWithError:(NSError *)error type:(ARTRealtimeTransportErrorType)type url:(NSURL *)url {
self = [super init];
if (self) {
self.error = error;
self.type = type;
self.url = url;
}
return self;
}
- (instancetype)initWithError:(NSError *)error badResponseCode:(NSInteger)badResponseCode url:(NSURL *)url {
self = [self initWithError:error type:ARTRealtimeTransportErrorTypeBadResponse url:url];
if (self) {
self.badResponseCode = badResponseCode;
}
return self;
}
- (NSString *)description {
NSMutableString *description = [NSMutableString stringWithFormat:@"<ARTRealtimeTransportError: %p {\n", self];
[description appendFormat:@" type: %@\n", [ARTRealtimeTransportError typeDescription:self.type]];
[description appendFormat:@" badResponseCode: %ld\n", (long)self.badResponseCode];
[description appendFormat:@" url: %@\n", self.url];
[description appendFormat:@" error: %@\n", self.error];
[description appendFormat:@"}>"];
return description;
}
+ (NSString *)typeDescription:(ARTRealtimeTransportErrorType)type {
switch (type) {
case ARTRealtimeTransportErrorTypeOther:
return @"Other";
case ARTRealtimeTransportErrorTypeHostUnreachable:
return @"Unreachable";
case ARTRealtimeTransportErrorTypeNoInternet:
return @"NoInternet";
case ARTRealtimeTransportErrorTypeTimeout:
return @"Timeout";
case ARTRealtimeTransportErrorTypeBadResponse:
return @"BadResponse";
case ARTRealtimeTransportErrorTypeRefused:
return @"Refused";
}
}
@end