#import "PithosNode.h"
#import "PithosNodeInfoController.h"
+#import "ASIDownloadCache.h"
+#import "ASIPithosRequest.h"
@implementation PithosNode
-@synthesize parent, shared, displayName, isLeafItem, icon;
+@synthesize forcedRefresh, parent, shared, sharingAccount, displayName, isLeafItem, icon;
@dynamic url, children, pithosContainer, pithosObject;
#pragma mark -
#pragma mark Object Lifecycle
- (id)init {
- if ((self == [super init])) {
+ if ((self = [super init])) {
freshness = PithosNodeStateRefreshNeeded;
+ forcedRefresh = NO;
shared = NO;
isLeafItem = NO;
}
- (void)dealloc {
[pithosNodeInfoController release];
+ [sharingAccount release];
[icon release];
[displayName release];
[newChildren release];
}
#pragma mark -
+#pragma mark Properties
+
+- (void)setShared:(BOOL)aShared {
+ if (shared != aShared) {
+ shared = aShared;
+ [url release];
+ url = nil;
+ }
+}
+
+- (void)setSharingAccount:(NSString *)aSharingAccount {
+ if (![sharingAccount isEqualToString:aSharingAccount]) {
+ [sharingAccount release];
+ sharingAccount = [aSharingAccount retain];
+ [url release];
+ url = nil;
+ }
+}
+
+#pragma mark -
#pragma mark Actions
- (void)invalidateChildren {
self.children;
}
-- (void)refreshToRoot {
- [self invalidateChildren];
- [self.parent refreshToRoot];
- self.children;
+- (void)forceRefresh {
+ forcedRefresh = YES;
+ [self refresh];
}
- (void)showPithosNodeInfo:(id)sender {
}
}
+#pragma mark -
+#pragma mark ASIHTTPRequestDelegate
+
+- (void)performRequestFinishedDelegateInBackground:(ASIPithosRequest *)request {
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+ [self performSelector:NSSelectorFromString([request.userInfo objectForKey:@"didFinishSelector"]) withObject:request];
+ });
+}
+
+- (void)performRequestFailedDelegateInBackground:(ASIPithosRequest *)request {
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+ [self performSelector:NSSelectorFromString([request.userInfo objectForKey:@"didFailSelector"]) withObject:request];
+ });
+}
+
@end
\ No newline at end of file