123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- //
- // QNConfiguration.m
- // QiniuSDK
- //
- // Created by bailong on 15/5/21.
- // Copyright (c) 2015年 Qiniu. All rights reserved.
- //
- #import "QNConfiguration.h"
- #import "QNHttpResponseInfo.h"
- #import "QNResponseInfo.h"
- #import "QNSessionManager.h"
- #import "QNUpToken.h"
- #import "QNUploadInfoReporter.h"
- #import "QNAutoZone.h"
- const UInt32 kQNBlockSize = 4 * 1024 * 1024;
- const UInt32 kQNDefaultDnsCacheTime = 2 * 60;
- @implementation QNConfiguration
- + (instancetype)build:(QNConfigurationBuilderBlock)block {
- QNConfigurationBuilder *builder = [[QNConfigurationBuilder alloc] init];
- block(builder);
- return [[QNConfiguration alloc] initWithBuilder:builder];
- }
- - (instancetype)initWithBuilder:(QNConfigurationBuilder *)builder {
- if (self = [super init]) {
- _chunkSize = builder.chunkSize;
- _putThreshold = builder.putThreshold;
- _retryMax = builder.retryMax;
- _retryInterval = builder.retryInterval;
- _timeoutInterval = builder.timeoutInterval;
- _recorder = builder.recorder;
- _recorderKeyGen = builder.recorderKeyGen;
- _proxy = builder.proxy;
- _converter = builder.converter;
-
- _zone = builder.zone;
- _useHttps = builder.useHttps;
- _allowBackupHost = builder.allowBackupHost;
-
- _reportConfig = builder.reportConfig;
- _useConcurrentResumeUpload = builder.useConcurrentResumeUpload;
-
- _concurrentTaskCount = builder.concurrentTaskCount;
- }
- return self;
- }
- @end
- @interface QNGlobalConfiguration()
- @end
- @implementation QNGlobalConfiguration
- + (instancetype)shared{
- static QNGlobalConfiguration *config = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- config = [[QNGlobalConfiguration alloc] init];
- [config setupData];
- });
- return config;
- }
- - (void)setupData{
- _isDnsOpen = YES;
- _dnscacheDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches/Dns"];
- _dnsRepreHostNum = 2;
- _dnsCacheTime = kQNDefaultDnsCacheTime;
- }
- @end
- @implementation QNConfigurationBuilder
- - (instancetype)init {
- if (self = [super init]) {
- _zone = [[QNAutoZone alloc] init];
- _chunkSize = 2 * 1024 * 1024;
- _putThreshold = 4 * 1024 * 1024;
- _retryMax = 3;
- _timeoutInterval = 60;
- _retryInterval = 0.5;
- _reportConfig = [QNReportConfig sharedInstance];
- _recorder = nil;
- _recorderKeyGen = nil;
- _proxy = nil;
- _converter = nil;
- _useHttps = YES;
- _allowBackupHost = YES;
- _useConcurrentResumeUpload = NO;
- _concurrentTaskCount = 3;
- }
- return self;
- }
- @end
|