Support multiple accounts. Bug fixes. Improve concurrency.
[pithos-macos] / pithos-macos / PithosActivityFacility.m
index 7078b21..92e2fa3 100644 (file)
@@ -2,7 +2,7 @@
 //  PithosActivityFacility.m
 //  pithos-macos
 //
-// Copyright 2011 GRNET S.A. All rights reserved.
+// Copyright 2011-2012 GRNET S.A. All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or
 // without modification, are permitted provided that the following
@@ -36,6 +36,7 @@
 // or implied, of GRNET S.A.
 
 #import "PithosActivityFacility.h"
+#import "PithosAccount.h"
 
 static PithosActivityFacility *defaultPithosActivityFacility = nil;
 
@@ -172,8 +173,12 @@ static PithosActivityFacility *defaultPithosActivityFacility = nil;
             }
             pickedRunning = YES;
         }
-        if (activity && activity.message)
-            [info setObject:activity.message forKey:@"message"];
+        if (activity && activity.message) {
+            if (activity.pithosAccount)
+                [info setObject:[NSString stringWithFormat:@"[%@] %@", activity.pithosAccount.name, activity.message] forKey:@"message"];
+            else
+                [info setObject:activity.message forKey:@"message"];
+        }
         [info setObject:[NSNumber numberWithUnsignedInteger:[runningActivities count]] forKey:@"runningActivitiesCount"];
         [info setObject:[NSNumber numberWithUnsignedInteger:[endingActivities count]] forKey:@"endingActivitiesCount"];
         [info setObject:[NSNumber numberWithUnsignedInteger:totalUploadBytes] forKey:@"totalUploadBytes"];
@@ -193,8 +198,9 @@ static PithosActivityFacility *defaultPithosActivityFacility = nil;
 - (PithosActivity *)startActivityWithType:(PithosActivityType)type 
                                   message:(NSString *)message 
                                totalBytes:(NSUInteger)totalBytes 
-                               currentBytes:(NSUInteger)currentBytes {
-    PithosActivity *activity = [[[PithosActivity alloc] initWithType:type] autorelease];
+                             currentBytes:(NSUInteger)currentBytes 
+                            pithosAccount:(PithosAccount *)pithosAccount {
+    PithosActivity *activity = [[[PithosActivity alloc] initWithType:type pithosAccount:pithosAccount] autorelease];
     activity.message = message;
     activity.totalBytes = totalBytes;
     activity.currentBytes = currentBytes;
@@ -226,12 +232,27 @@ static PithosActivityFacility *defaultPithosActivityFacility = nil;
 }
 
 - (PithosActivity *)startActivityWithType:(PithosActivityType)type 
+                                  message:(NSString *)message 
+                               totalBytes:(NSUInteger)totalBytes 
+                             currentBytes:(NSUInteger)currentBytes {
+    return [self startActivityWithType:type message:message totalBytes:totalBytes currentBytes:currentBytes pithosAccount:nil];
+}
+
+- (PithosActivity *)startActivityWithType:(PithosActivityType)type 
+                                  message:(NSString *)message 
+                            pithosAccount:(PithosAccount *)pithosAccount {
+    return [self startActivityWithType:type message:message totalBytes:0 currentBytes:0 pithosAccount:pithosAccount];
+}
+
+- (PithosActivity *)startActivityWithType:(PithosActivityType)type 
                                   message:(NSString *)message {
-    return [self startActivityWithType:type message:message totalBytes:0 currentBytes:0];
+    return [self startActivityWithType:type message:message pithosAccount:nil];
 }
 
-- (PithosActivity *)startAndEndActivityWithType:(PithosActivityType)type message:(NSString *)message {
-    PithosActivity *activity = [[[PithosActivity alloc] initWithType:type] autorelease];
+- (PithosActivity *)startAndEndActivityWithType:(PithosActivityType)type 
+                                        message:(NSString *)message 
+                                  pithosAccount:(PithosAccount *)pithosAccount {
+    PithosActivity *activity = [[[PithosActivity alloc] initWithType:type pithosAccount:pithosAccount] autorelease];
     activity.message = message;
     activity.totalBytes = 0;
     activity.currentBytes = 0;
@@ -243,6 +264,10 @@ static PithosActivityFacility *defaultPithosActivityFacility = nil;
     return activity;
 }
 
+- (PithosActivity *)startAndEndActivityWithType:(PithosActivityType)type message:(NSString *)message {
+    return [self startAndEndActivityWithType:type message:message pithosAccount:nil];
+}
+
 - (void)updateActivity:(PithosActivity *)activity 
            withMessage:(NSString *)message 
             totalBytes:(NSUInteger)totalBytes