Revision 7cef5633 pithos-macos/PithosObjectNode.m
b/pithos-macos/PithosObjectNode.m | ||
---|---|---|
47 | 47 |
|
48 | 48 |
@implementation PithosObjectNode |
49 | 49 |
@synthesize pithos, pithosContainer, pithosObject; |
50 |
@synthesize isPublic; |
|
50 |
@synthesize isPublic, versions;
|
|
51 | 51 |
|
52 | 52 |
#pragma mark - |
53 | 53 |
#pragma mark Object Lifecycle |
... | ... | |
72 | 72 |
[pithosObject release]; |
73 | 73 |
[pithosContainer release]; |
74 | 74 |
[pithos release]; |
75 |
[versions release]; |
|
75 | 76 |
[super dealloc]; |
76 | 77 |
} |
77 | 78 |
|
... | ... | |
179 | 180 |
[refreshMetadataObjectRequest release]; |
180 | 181 |
refreshMetadataObjectRequest = nil; |
181 | 182 |
} |
183 |
} else if ([request isEqualTo:getObjectVersionsRequest]) { |
|
184 |
[[pithosNodeInfoController window] makeFirstResponder:nil]; |
|
185 |
self.versions = [getObjectVersionsRequest versions]; |
|
186 |
@synchronized(self) { |
|
187 |
[getObjectVersionsRequest release]; |
|
188 |
getObjectVersionsRequest = nil; |
|
189 |
} |
|
182 | 190 |
} |
183 | 191 |
[pool drain]; |
184 | 192 |
} |
... | ... | |
199 | 207 |
[refreshMetadataObjectRequest release]; |
200 | 208 |
refreshMetadataObjectRequest = newRequest; |
201 | 209 |
} |
210 |
} else if ([request isEqualTo:getObjectVersionsRequest]) { |
|
211 |
@synchronized(self) { |
|
212 |
[getObjectVersionsRequest release]; |
|
213 |
getObjectVersionsRequest = newRequest; |
|
214 |
} |
|
202 | 215 |
} |
203 | 216 |
[[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous]; |
204 | 217 |
} else { |
... | ... | |
218 | 231 |
[refreshMetadataObjectRequest release]; |
219 | 232 |
refreshMetadataObjectRequest = nil; |
220 | 233 |
} |
234 |
} else if ([request isEqualTo:getObjectVersionsRequest]) { |
|
235 |
dispatch_async(dispatch_get_main_queue(), ^{ |
|
236 |
[PithosUtilities httpRequestErrorAlertWithRequest:getObjectVersionsRequest]; |
|
237 |
}); |
|
238 |
@synchronized(self) { |
|
239 |
[getObjectVersionsRequest release]; |
|
240 |
getObjectVersionsRequest = nil; |
|
241 |
} |
|
221 | 242 |
} |
222 | 243 |
} |
223 | 244 |
[pool drain]; |
... | ... | |
288 | 309 |
refreshMetadataObjectRequest.downloadCache = [ASIDownloadCache sharedCache]; |
289 | 310 |
[[PithosUtilities prepareRequest:refreshMetadataObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
290 | 311 |
} |
312 |
if (getObjectVersionsRequest == nil) { |
|
313 |
getObjectVersionsRequest = [[ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos |
|
314 |
containerName:pithosContainer.name |
|
315 |
objectName:pithosObject.name] retain]; |
|
316 |
if (sharingAccount) |
|
317 |
[getObjectVersionsRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos]; |
|
318 |
getObjectVersionsRequest.delegate = self; |
|
319 |
getObjectVersionsRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:); |
|
320 |
getObjectVersionsRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:); |
|
321 |
getObjectVersionsRequest.userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys: |
|
322 |
[NSNumber numberWithInteger:NSOperationQueuePriorityHigh], @"priority", |
|
323 |
[NSNumber numberWithUnsignedInteger:10], @"retries", |
|
324 |
NSStringFromSelector(@selector(objectRequestFinished:)), @"didFinishSelector", |
|
325 |
NSStringFromSelector(@selector(objectRequestFailed:)), @"didFailSelector", |
|
326 |
nil]; |
|
327 |
getObjectVersionsRequest.downloadCache = [ASIDownloadCache sharedCache]; |
|
328 |
[[PithosUtilities prepareRequest:getObjectVersionsRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
|
329 |
} |
|
291 | 330 |
} |
292 | 331 |
} |
293 | 332 |
|
... | ... | |
304 | 343 |
[NSApp activateIgnoringOtherApps:YES]; |
305 | 344 |
} |
306 | 345 |
|
307 |
- (NSArray *)getVersions { |
|
308 |
NSArray *versions = nil; |
|
309 |
ASIPithosObjectRequest *getObjectVersionsRequest = [[ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos |
|
310 |
containerName:pithosContainer.name |
|
311 |
objectName:pithosObject.name] retain]; |
|
312 |
if (sharingAccount) |
|
313 |
[getObjectVersionsRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos]; |
|
314 |
[getObjectVersionsRequest startSynchronous]; |
|
315 |
NSError *error = [getObjectVersionsRequest error]; |
|
316 |
if (!error) { |
|
317 |
versions = [getObjectVersionsRequest versions]; |
|
318 |
} |
|
319 |
[getObjectVersionsRequest release]; |
|
320 |
return versions; |
|
321 |
} |
|
322 |
|
|
323 | 346 |
@end |
Also available in: Unified diff