#pragma mark ASIHTTPRequestDelegate
- (void)objectRequestFinished:(ASIPithosObjectRequest *)request {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- DLog(@"URL: %@", [request url]);
- DLog(@"cached: %d", [request didUseCachedResponse]);
-
- if ([request isEqualTo:applyMetadataObjectRequest]) {
- int responseStatusCode = applyMetadataObjectRequest.responseStatusCode;
- if ((responseStatusCode != 201) && (responseStatusCode != 202))
- [PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest];
- @synchronized(self) {
- [applyMetadataObjectRequest release];
- applyMetadataObjectRequest = nil;
- }
- if ((responseStatusCode == 201) || (responseStatusCode == 202))
- [self refreshInfo];
- } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
- [[pithosNodeInfoController window] makeFirstResponder:nil];
- self.pithosObject = [refreshMetadataObjectRequest object];
- if (refreshParent) {
- // Ask the parent for refresh for the case where an object was removed
- // It is done here so that it doesn't affect the info window refresh
- [parent refresh];
- refreshParent = NO;
- }
- @synchronized(self) {
- [refreshMetadataObjectRequest release];
- refreshMetadataObjectRequest = nil;
- }
- } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
- [[pithosNodeInfoController window] makeFirstResponder:nil];
- self.versions = [refreshVersionsObjectRequest versions];
- @synchronized(self) {
- [refreshVersionsObjectRequest release];
- refreshVersionsObjectRequest = nil;
- }
- }
- [pool drain];
-}
-
-- (void)objectRequestFailed:(ASIPithosObjectRequest *)request {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- NSUInteger retries = [[request.userInfo objectForKey:@"retries"] unsignedIntegerValue];
- if (retries > 0) {
- ASIPithosObjectRequest *newRequest = (ASIPithosObjectRequest *)[PithosUtilities copyRequest:request];
- [(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
- if ([request isEqualTo:applyMetadataObjectRequest]) {
- @synchronized(self) {
- [applyMetadataObjectRequest release];
- applyMetadataObjectRequest = newRequest;
- }
- } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
- @synchronized(self) {
- [refreshMetadataObjectRequest release];
- refreshMetadataObjectRequest = newRequest;
- }
- } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
- @synchronized(self) {
- [refreshVersionsObjectRequest release];
- refreshVersionsObjectRequest = newRequest;
- }
- }
- [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
- } else {
+ @autoreleasepool {
+ DLog(@"URL: %@", [request url]);
+ DLog(@"cached: %d", [request didUseCachedResponse]);
+
if ([request isEqualTo:applyMetadataObjectRequest]) {
- [PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest];
+ int responseStatusCode = applyMetadataObjectRequest.responseStatusCode;
+ if ((responseStatusCode != 201) && (responseStatusCode != 202))
+ [PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest];
@synchronized(self) {
[applyMetadataObjectRequest release];
applyMetadataObjectRequest = nil;
}
+ if ((responseStatusCode == 201) || (responseStatusCode == 202))
+ [self refreshInfo];
} else if ([request isEqualTo:refreshMetadataObjectRequest]) {
- [PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest];
+ [[pithosNodeInfoController window] makeFirstResponder:nil];
+ self.pithosObject = [refreshMetadataObjectRequest object];
+ if (refreshParent) {
+ // Ask the parent for refresh for the case where an object was removed
+ // It is done here so that it doesn't affect the info window refresh
+ [parent refresh];
+ refreshParent = NO;
+ }
@synchronized(self) {
[refreshMetadataObjectRequest release];
refreshMetadataObjectRequest = nil;
}
} else if ([request isEqualTo:refreshVersionsObjectRequest]) {
- [PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest];
+ [[pithosNodeInfoController window] makeFirstResponder:nil];
+ self.versions = [refreshVersionsObjectRequest versions];
@synchronized(self) {
[refreshVersionsObjectRequest release];
refreshVersionsObjectRequest = nil;
}
}
}
- [pool drain];
+}
+
+- (void)objectRequestFailed:(ASIPithosObjectRequest *)request {
+ @autoreleasepool {
+ NSUInteger retries = [[request.userInfo objectForKey:@"retries"] unsignedIntegerValue];
+ if (retries > 0) {
+ ASIPithosObjectRequest *newRequest = (ASIPithosObjectRequest *)[PithosUtilities copyRequest:request];
+ [(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
+ if ([request isEqualTo:applyMetadataObjectRequest]) {
+ @synchronized(self) {
+ [applyMetadataObjectRequest release];
+ applyMetadataObjectRequest = newRequest;
+ }
+ } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
+ @synchronized(self) {
+ [refreshMetadataObjectRequest release];
+ refreshMetadataObjectRequest = newRequest;
+ }
+ } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
+ @synchronized(self) {
+ [refreshVersionsObjectRequest release];
+ refreshVersionsObjectRequest = newRequest;
+ }
+ }
+ [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
+ } else {
+ if ([request isEqualTo:applyMetadataObjectRequest]) {
+ [PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest];
+ @synchronized(self) {
+ [applyMetadataObjectRequest release];
+ applyMetadataObjectRequest = nil;
+ }
+ } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
+ [PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest];
+ @synchronized(self) {
+ [refreshMetadataObjectRequest release];
+ refreshMetadataObjectRequest = nil;
+ }
+ } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
+ [PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest];
+ @synchronized(self) {
+ [refreshVersionsObjectRequest release];
+ refreshVersionsObjectRequest = nil;
+ }
+ }
+ }
+ }
}
#pragma mark -