Add support for syncing multiple containers for an account. Fix sync bugs. Change...
[pithos-macos] / pithos-macos / PithosSyncDaemon.h
index 4c60618..008f91f 100644 (file)
 @interface PithosSyncDaemon : NSObject {
     NSString *directoryPath;
     PithosAccount *pithosAccount;
-    NSString *containerName;
+    NSDictionary *containersDictionary;
     ASIPithos *pithos;
-
-    NSString *blockHash;
-    NSUInteger blockSize;
-    NSDate *lastModified;
+    
+    NSUInteger containersCount;
+    NSMutableArray *pithosContainers;
+    NSUInteger containersIndex;
+    
     NSMutableArray *objects;
     NSMutableDictionary *remoteObjects;
+    NSMutableDictionary *previousRemoteObjects;
     NSMutableDictionary *storedLocalObjectStates;
     NSMutableDictionary *currentLocalObjectStates;
     
-    NSString *containerDirectoryPath;
     NSString *pithosStateFilePath;
     NSString *tempDownloadsDirPath;
     NSString *tempTrashDirPath;
 
 @property (nonatomic, retain) NSString *directoryPath;
 @property (nonatomic, retain) PithosAccount *pithosAccount;
-@property (nonatomic, retain) NSString *containerName;
+@property (nonatomic, retain) NSDictionary *containersDictionary;
 @property (nonatomic, retain) ASIPithos *pithos;
 
-@property (nonatomic, retain) NSString *blockHash;
-@property (nonatomic, assign) NSUInteger blockSize;
-@property (nonatomic, retain) NSDate *lastModified;
+@property (nonatomic, retain) NSMutableArray *pithosContainers;
+
 @property (nonatomic, retain) NSMutableDictionary *remoteObjects;
+@property (nonatomic, retain) NSMutableDictionary *previousRemoteObjects;
 @property (nonatomic, retain) NSMutableDictionary *storedLocalObjectStates;
 @property (nonatomic, retain) NSMutableDictionary *currentLocalObjectStates;
 
-@property (nonatomic, retain) NSString *containerDirectoryPath;
 @property (nonatomic, readonly) NSString *pithosStateFilePath;
 @property (nonatomic, readonly) NSString *tempDownloadsDirPath;
 @property (nonatomic, readonly) NSString *tempTrashDirPath;
 
 @property (nonatomic, retain) NSDate *lastCompletedSync;
 
+// containersDictionary contains entries with keys the container names that should be included
+// and values NSArrays that contain the directory names that should be excluded
+// An empty string denotes that file objects in the container root should be excluded
 - (id)initWithDirectoryPath:(NSString *)aDirectoryPath 
               pithosAccount:(PithosAccount *)aPithosAccount 
-              containerName:(NSString *)aContainerName 
+       containersDictionary:(NSMutableDictionary *)aContainersDictionary 
             resetLocalState:(BOOL)resetLocalState;
 
 - (void)resetDaemon;