Reset sync daemon local state if the client version has changed
[pithos-macos] / pithos-macos / PithosAccount.h
index c783f78..dea922f 100644 (file)
 #import <Foundation/Foundation.h>
 @class PithosSyncDaemon;
 @class ASIPithos;
+@class ASIPithosRequest;
 @class PithosAccountNode;
+@class PithosSharingAccountsNode;
 
 @interface PithosAccount : NSObject <NSCoding> {
     NSString *uniqueName;
     BOOL active;
     NSString *name;
+    NSString *clientVersion;
     
     BOOL syncActive;
     NSString *syncDirectoryPath;
-    NSMutableDictionary *syncContainersDictionary;
+    NSMutableDictionary *syncAccountsDictionary;
+    BOOL syncSkipHidden;
     NSDate *syncLastCompleted;
     PithosSyncDaemon *syncDaemon;
         
@@ -62,6 +66,9 @@
     // Appended to serverURL to get publicURLPrefix, default nil
     // Can be overriden by setting directly publicURLPrefix
     NSString *publicResource;
+    // Appended to serverURL to get userCatalogURL, default "user_catalogs"
+    // Can be overriden by setting directly userCatalogURL
+    NSString *userCatalogResource;
 
     NSString *authUser;
     NSString *authToken;
     NSString *authURL;
     NSString *publicURLPrefix;
     NSString *loginURLPrefix;
+    NSString *userCatalogURL;
+    NSMutableDictionary *userCatalog;
     
     ASIPithos *pithos;
     PithosAccountNode *accountNode;
+    PithosSharingAccountsNode *sharingAccountsNode;
     
     BOOL updatePithos;
     BOOL resetSyncDaemonLocalState;
 }
 
-@property (nonatomic, retain) NSString *uniqueName;
+@property (nonatomic, strong) NSString *uniqueName;
 @property (assign) BOOL active;
-@property (nonatomic, retain) NSString *name;
+@property (nonatomic, strong) NSString *name;
+@property (nonatomic, strong) NSString *clientVersion;
 
 @property (nonatomic, assign) BOOL syncActive;
-@property (nonatomic, retain) NSString *syncDirectoryPath;
-@property (nonatomic, retain) NSMutableDictionary *syncContainersDictionary;
-@property (nonatomic, retain) NSDate *syncLastCompleted;
-@property (nonatomic, retain) PithosSyncDaemon *syncDaemon;
+@property (nonatomic, strong) NSString *syncDirectoryPath;
+@property (nonatomic, strong) NSMutableDictionary *syncAccountsDictionary;
+@property (nonatomic, assign) BOOL syncSkipHidden;
+@property (nonatomic, strong) NSDate *syncLastCompleted;
+@property (nonatomic, strong) PithosSyncDaemon *syncDaemon;
 
-@property (nonatomic, retain) NSString *serverURL;
-@property (retain) NSString *versionResource;
-@property (retain) NSString *loginResource;
-@property (retain) NSString *publicResource;
+@property (nonatomic, strong) NSString *serverURL;
+@property (nonatomic, strong) NSString *versionResource;
+@property (nonatomic, strong) NSString *loginResource;
+@property (strong) NSString *publicResource;
+@property (nonatomic, strong) NSString *userCatalogResource;
 
-@property (nonatomic, retain) NSString *authUser;
-@property (nonatomic, retain) NSString *authToken;
-@property (nonatomic, retain) NSString *storageURLPrefix;
-@property (nonatomic, retain) NSString *authURL;
-@property (nonatomic, retain) NSString *publicURLPrefix;
-@property (nonatomic, retain) NSString *loginURLPrefix;
+@property (nonatomic, strong) NSString *authUser;
+@property (nonatomic, strong) NSString *authToken;
+@property (nonatomic, strong) NSString *storageURLPrefix;
+@property (nonatomic, strong) NSString *authURL;
+@property (nonatomic, strong) NSString *publicURLPrefix;
+@property (nonatomic, strong) NSString *loginURLPrefix;
+@property (nonatomic, strong) NSString *userCatalogURL;
+@property (nonatomic, strong) NSMutableDictionary *userCatalog;
 
-@property (readonly) ASIPithos *pithos;
+@property (strong, readonly) ASIPithos *pithos;
 @property (readonly) PithosAccountNode *accountNode;
+@property (readonly) PithosSharingAccountsNode *sharingAccountsNode;
 
 + (id)pithosAccount;
 
 - (BOOL)urlIsValid:(NSString *)urlString;
 - (void)authenticateWithServerURL:(NSString *)aServerURL authUser:(NSString *)anAuthUser authToken:(NSString *)anAuthToken;
 - (void)loginWithServerURL:(NSString *)aServerURL;
-- (void)updateSyncWithSyncActive:(BOOL)aSyncActive syncDirectoryPath:(NSString *)aSyncDirectoryPath;
+- (void)updateSyncWithSyncActive:(BOOL)aSyncActive 
+               syncDirectoryPath:(NSString *)aSyncDirectoryPath 
+          syncAccountsDictionary:(NSMutableDictionary *)aSyncAccountsDictionary 
+                  syncSkipHidden:(BOOL)aSyncSkipHidden;
+- (ASIPithosRequest *)updateUserCatalogForForDisplaynames:(NSArray *)displaynames UUIDs:(NSArray *)UUIDs;
+- (NSString *)displaynameForUUID:(NSString *)UUID safe:(BOOL)safe;
+- (NSString *)displaynameForUUID:(NSString *)UUID;
 
 @end