You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// // FLEXNetworkTransaction.m // Flipboard // // Created by Ryan Olson on 2/8/15. // Copyright (c) 2015 Flipboard. All rights reserved. //
#import "FLEXNetworkTransaction.h"
@interface FLEXNetworkTransaction ()
@property (nonatomic, readwrite) NSData *cachedRequestBody;
@end
@implementation FLEXNetworkTransaction
- (NSString *)description { NSString *description = [super description];
description = [description stringByAppendingFormat:@" id = %@;", self.requestID]; description = [description stringByAppendingFormat:@" url = %@;", self.request.URL]; description = [description stringByAppendingFormat:@" duration = %f;", self.duration]; description = [description stringByAppendingFormat:@" receivedDataLength = %lld", self.receivedDataLength];
return description; }
- (NSData *)cachedRequestBody { if (!_cachedRequestBody) { if (self.request.HTTPBody != nil) { _cachedRequestBody = self.request.HTTPBody; } else if ([self.request.HTTPBodyStream conformsToProtocol:@protocol(NSCopying)]) { NSInputStream *bodyStream = [self.request.HTTPBodyStream copy]; const NSUInteger bufferSize = 1024; uint8_t buffer[bufferSize]; NSMutableData *data = [NSMutableData data]; [bodyStream open]; NSInteger readBytes = 0; do { readBytes = [bodyStream read:buffer maxLength:bufferSize]; [data appendBytes:buffer length:readBytes]; } while (readBytes > 0); [bodyStream close]; _cachedRequestBody = data; } } return _cachedRequestBody; }
+ (NSString *)readableStringFromTransactionState:(FLEXNetworkTransactionState)state { NSString *readableString = nil; switch (state) { case FLEXNetworkTransactionStateUnstarted: readableString = @"Unstarted"; break;
case FLEXNetworkTransactionStateAwaitingResponse: readableString = @"Awaiting Response"; break;
case FLEXNetworkTransactionStateReceivingData: readableString = @"Receiving Data"; break;
case FLEXNetworkTransactionStateFinished: readableString = @"Finished"; break;
case FLEXNetworkTransactionStateFailed: readableString = @"Failed"; break; } return readableString; }
@end
|