static NSImage *sharedIcon = nil;
@implementation PithosAccountNode
-@synthesize pithos, pithosAccount, translatedGroups;
+@synthesize pithos, pithosAccount, accountRequest, applyMetadataAccountRequest, refreshMetadataAccountRequest, translatedGroups;
+ (void)initialize {
if (self == [PithosAccountNode class])
pithos = aPithos;
url = nil;
[accountRequest clearDelegatesAndCancel];
- accountRequest = nil;
+ self.accountRequest = nil;
[refreshMetadataAccountRequest clearDelegatesAndCancel];
- refreshMetadataAccountRequest = nil;
+ self.refreshMetadataAccountRequest = nil;
[applyMetadataAccountRequest clearDelegatesAndCancel];
- applyMetadataAccountRequest = nil;
+ self.applyMetadataAccountRequest = nil;
reset = YES;
}
}
@synchronized(self) {
if (reset) {
[accountRequest clearDelegatesAndCancel];
- accountRequest = nil;
+ self.accountRequest = nil;
[refreshMetadataAccountRequest clearDelegatesAndCancel];
- refreshMetadataAccountRequest = nil;
+ self.refreshMetadataAccountRequest = nil;
[applyMetadataAccountRequest clearDelegatesAndCancel];
- applyMetadataAccountRequest = nil;
+ self.applyMetadataAccountRequest = nil;
children = nil;
newChildren = nil;
self.pithosAccount = nil;
break;
case PithosNodeStateRefreshNeeded:
freshness = PithosNodeStateRefreshing;
- accountRequest = [ASIPithosAccountRequest listContainersRequestWithPithos:pithos
- limit:0
- marker:nil
- shared:shared
- until:nil];
+ self.accountRequest = [ASIPithosAccountRequest listContainersRequestWithPithos:pithos
+ limit:0
+ marker:nil
+ shared:shared
+ until:nil];
if (sharingAccount)
[accountRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
else if (!forcedRefresh)
if (retries > 0) {
ASIPithosAccountRequest *newAccountRequest = (ASIPithosAccountRequest *)[PithosUtilities copyRequest:accountRequest];
[(NSMutableDictionary *)(newAccountRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
- accountRequest = newAccountRequest;
+ self.accountRequest = newAccountRequest;
[[PithosUtilities prepareRequest:accountRequest priority:[[accountRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
} else {
newChildren = nil;
- accountRequest = nil;
+ self.accountRequest = nil;
forcedRefresh = NO;
@synchronized(self) {
freshness = PithosNodeStateRefreshNeeded;
}]] makeObjectsPerformSelector:@selector(pithosNodeWillBeRemoved)];
}
// Else cache was used and all results were fetched during this request, so existing children can be reused
- accountRequest = nil;
+ self.accountRequest = nil;
forcedRefresh = NO;
@synchronized(self) {
freshness = PithosNodeStateRefreshFinished;
[self postChildrenUpdatedNotificationName];
} else {
// Do an additional request to fetch more objects
- accountRequest = [ASIPithosAccountRequest listContainersRequestWithPithos:pithos
- limit:0
- marker:[[someContainers lastObject] name]
- shared:shared
- until:nil];
+ self.accountRequest = [ASIPithosAccountRequest listContainersRequestWithPithos:pithos
+ limit:0
+ marker:[[someContainers lastObject] name]
+ shared:shared
+ until:nil];
if (sharingAccount)
[accountRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
else if (!forcedRefresh)
}
} else if (accountRequest.responseStatusCode == 304) {
// Account is not modified, so existing children can be reused
- accountRequest = nil;
+ self.accountRequest = nil;
forcedRefresh = NO;
@synchronized(self) {
freshness = PithosNodeStateRefreshFinished;
if ([request isEqualTo:applyMetadataAccountRequest]) {
@synchronized(self) {
- applyMetadataAccountRequest = nil;
+ self.applyMetadataAccountRequest = nil;
}
[self refreshInfo];
} else if ([request isEqualTo:refreshMetadataAccountRequest]) {
self.pithosAccount = [refreshMetadataAccountRequest account];
@synchronized(self) {
- refreshMetadataAccountRequest = nil;
+ self.refreshMetadataAccountRequest = nil;
}
}
}
[(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
if ([request isEqualTo:applyMetadataAccountRequest]) {
@synchronized(self) {
- applyMetadataAccountRequest = newRequest;
+ self.applyMetadataAccountRequest = newRequest;
}
} else if ([request isEqualTo:refreshMetadataAccountRequest]) {
@synchronized(self) {
- refreshMetadataAccountRequest = newRequest;
+ self.refreshMetadataAccountRequest = newRequest;
}
}
[[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
if ([request isEqualTo:applyMetadataAccountRequest]) {
[PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataAccountRequest];
@synchronized(self) {
- applyMetadataAccountRequest = nil;
+ self.applyMetadataAccountRequest = nil;
}
} else if ([request isEqualTo:refreshMetadataAccountRequest]) {
[PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataAccountRequest];
@synchronized(self) {
- refreshMetadataAccountRequest = nil;
+ self.refreshMetadataAccountRequest = nil;
}
}
}
[groups setObject:[NSArray arrayWithObject:@""] forKey:@"group"];
}
- applyMetadataAccountRequest = [ASIPithosAccountRequest updateAccountMetadataRequestWithPithos:pithos
- groups:groups
- metadata:pithosAccount.metadata
- update:NO];
+ self.applyMetadataAccountRequest = [ASIPithosAccountRequest updateAccountMetadataRequestWithPithos:pithos
+ groups:groups
+ metadata:pithosAccount.metadata
+ update:NO];
applyMetadataAccountRequest.delegate = self;
applyMetadataAccountRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
applyMetadataAccountRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
- (void)refreshInfo {
@synchronized(self) {
if (refreshMetadataAccountRequest == nil) {
- refreshMetadataAccountRequest = [ASIPithosAccountRequest accountMetadataRequestWithPithos:pithos];
+ self.refreshMetadataAccountRequest = [ASIPithosAccountRequest accountMetadataRequestWithPithos:pithos];
refreshMetadataAccountRequest.delegate = self;
refreshMetadataAccountRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
refreshMetadataAccountRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);