Ben Copsey

Ok, now things are getting exciting!

Merge branch 'new-queue-threading-model' into v1.7

Conflicts:
	Classes/ASIHTTPRequest.h
	Classes/ASIHTTPRequest.m
@@ -343,9 +343,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -343,9 +343,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
343 // Default is YES 343 // Default is YES
344 BOOL shouldPresentCredentialsBeforeChallenge; 344 BOOL shouldPresentCredentialsBeforeChallenge;
345 345
346 - // YES when the request is run with runSynchronous, NO otherwise. READ-ONLY  
347 - BOOL isSynchronous;  
348 -  
349 // YES when the request hasn't finished yet. Will still be YES even if the request isn't doing anything (eg it's waiting for delegate authentication). READ-ONLY 346 // YES when the request hasn't finished yet. Will still be YES even if the request isn't doing anything (eg it's waiting for delegate authentication). READ-ONLY
350 BOOL inProgress; 347 BOOL inProgress;
351 348
@@ -384,9 +381,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -384,9 +381,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
384 // The stream will be closed + released either when another request comes to use the connection, or when the timer fires to tell the connection to expire 381 // The stream will be closed + released either when another request comes to use the connection, or when the timer fires to tell the connection to expire
385 NSMutableDictionary *connectionInfo; 382 NSMutableDictionary *connectionInfo;
386 383
387 - // This timer checks up on the request every 0.25 seconds, and updates progress  
388 - NSTimer *statusTimer;  
389 -  
390 // When set to YES, 301 and 302 automatic redirects will use the original method and and body, according to the HTTP 1.1 standard 384 // When set to YES, 301 and 302 automatic redirects will use the original method and and body, according to the HTTP 1.1 standard
391 // Default is NO (to follow the behaviour of most browsers) 385 // Default is NO (to follow the behaviour of most browsers)
392 BOOL shouldUseRFC2616RedirectBehaviour; 386 BOOL shouldUseRFC2616RedirectBehaviour;
@@ -400,6 +394,10 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -400,6 +394,10 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
400 // Will be ASIHTTPRequestRunLoopMode for synchronous requests, NSDefaultRunLoopMode for all other requests 394 // Will be ASIHTTPRequestRunLoopMode for synchronous requests, NSDefaultRunLoopMode for all other requests
401 NSString *runLoopMode; 395 NSString *runLoopMode;
402 396
  397 + // This timer checks up on the request every 0.25 seconds, and updates progress
  398 + NSTimer *statusTimer;
  399 +
  400 +
403 // The download cache that will be used for this request (use [ASIHTTPRequest setDefaultCache:cache] to configure a default cache 401 // The download cache that will be used for this request (use [ASIHTTPRequest setDefaultCache:cache] to configure a default cache
404 id <ASICacheDelegate> downloadCache; 402 id <ASICacheDelegate> downloadCache;
405 403
@@ -414,7 +412,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -414,7 +412,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
414 412
415 // Set secondsToCache to use a custom time interval for expiring the response when it is stored in a cache 413 // Set secondsToCache to use a custom time interval for expiring the response when it is stored in a cache
416 NSTimeInterval secondsToCache; 414 NSTimeInterval secondsToCache;
417 -  
418 } 415 }
419 416
420 #pragma mark init / dealloc 417 #pragma mark init / dealloc
@@ -717,6 +714,18 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -717,6 +714,18 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
717 // Returns a date from a string in RFC1123 format 714 // Returns a date from a string in RFC1123 format
718 + (NSDate *)dateFromRFC1123String:(NSString *)string; 715 + (NSDate *)dateFromRFC1123String:(NSString *)string;
719 716
  717 +#pragma mark threading behaviour
  718 +
  719 +// In the default implementation, all requests run in a single background thread
  720 +// Advanced users only: Override this method in a subclass for a different threading behaviour
  721 +// Eg: return [NSThread mainThread] to run all requests in the main thread
  722 +// Alternatively, you can create a thread on demand, or manage a pool of threads
  723 +// Threads returned by this method will need to run the runloop in default mode (eg CFRunLoopRun())
  724 +// Requests will stop the runloop when they complete
  725 +// If you have multiple requests sharing the thread you'll need to restart the runloop when this happens
  726 ++ (NSThread *)threadForRequest:(ASIHTTPRequest *)request;
  727 +
  728 +
720 #pragma mark === 729 #pragma mark ===
721 730
722 @property (retain) NSString *username; 731 @property (retain) NSString *username;
@@ -794,7 +803,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; @@ -794,7 +803,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount;
794 @property (assign, readonly) int proxyAuthenticationRetryCount; 803 @property (assign, readonly) int proxyAuthenticationRetryCount;
795 @property (assign) BOOL haveBuiltRequestHeaders; 804 @property (assign) BOOL haveBuiltRequestHeaders;
796 @property (assign, nonatomic) BOOL haveBuiltPostBody; 805 @property (assign, nonatomic) BOOL haveBuiltPostBody;
797 -@property (assign, readonly) BOOL isSynchronous;  
798 @property (assign, readonly) BOOL inProgress; 806 @property (assign, readonly) BOOL inProgress;
799 @property (assign) int numberOfTimesToRetryOnTimeout; 807 @property (assign) int numberOfTimesToRetryOnTimeout;
800 @property (assign, readonly) int retryCount; 808 @property (assign, readonly) int retryCount;
This diff is collapsed. Click to expand it.
@@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
96 // Stop any other requests 96 // Stop any other requests
97 [networkQueue reset]; 97 [networkQueue reset];
98 98
99 - [self setBigFetchRequest:[[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/ASIHTTPRequest/tests/redirect_resume"]] autorelease]]; 99 + [self setBigFetchRequest:[ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://allseeing-i.com/ASIHTTPRequest/tests/redirect_resume"]]];
100 [[self bigFetchRequest] setDownloadDestinationPath:[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"The Great American Novel.txt"]]; 100 [[self bigFetchRequest] setDownloadDestinationPath:[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"The Great American Novel.txt"]];
101 [[self bigFetchRequest] setTemporaryFileDownloadPath:[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"The Great American Novel.txt.download"]]; 101 [[self bigFetchRequest] setTemporaryFileDownloadPath:[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"The Great American Novel.txt.download"]];
102 [[self bigFetchRequest] setAllowResumeForFileDownloads:YES]; 102 [[self bigFetchRequest] setAllowResumeForFileDownloads:YES];
This diff was suppressed by a .gitattributes entry.