dav/sync.h

changeset 525
26a1d5b9d9d2
parent 523
923a4528a2ae
child 526
e3c0440bd599
--- a/dav/sync.h	Fri Mar 15 20:30:09 2019 +0100
+++ b/dav/sync.h	Sun Mar 17 15:00:48 2019 +0100
@@ -60,6 +60,12 @@
     char *path;
 } SyncFile;
 
+typedef struct MetadataHashes {
+    char *tags;
+    char *tags_remote;
+    char *xattr;
+} MetadataHashes;
+
 enum RemoteChangeType {
     REMOTE_NO_CHANGE = 0,
     REMOTE_CHANGE_MODIFIED,
@@ -119,6 +125,7 @@
         DavSession *sn,
         SyncDirectory *dir,
         SyncDatabase *db,
+        DavResource *remote,
         LocalResource *res);
 
 int resource_pathlen_cmp(LocalResource *res1, LocalResource *res2, void *n);
@@ -126,8 +133,7 @@
 int sync_set_status(DavResource *res, char *status);
 int sync_remove_status(DavResource *res);
 UcxBuffer* sync_get_file_tag_data(SyncDirectory *dir, LocalResource *res);
-UcxList* sync_get_file_tags(SyncDirectory *dir, LocalResource *res, DavBool *changed);
-UcxList* sync_merge_tags(UcxList *tags1, UcxList *tags2);
+UcxList* sync_get_file_tags(SyncDirectory *dir, LocalResource *res, DavBool *changed, char **newhash);
 int sync_tags_equal(UcxList *tags1, UcxList *tags2);
 int sync_store_tags(SyncDirectory *dir, const char *path, LocalResource *local, DavResource *res);
 int sync_store_tags_local(SyncDirectory *dir, LocalResource *local, const char *path, UcxList *tags);
@@ -138,7 +144,16 @@
         int *counter);
 int sync_mkdir(SyncDirectory *dir, DavResource *res, LocalResource *local);
 int sync_delete_remote_resource(SyncDirectory *dir, DavSession *sn, LocalResource *res, int *counter, UcxList **cols);
-int sync_update_metadata(SyncDirectory *dir, DavSession *sn, DavResource *res, LocalResource *local);
+MetadataHashes sync_set_metadata_properties(
+        SyncDirectory *dir,
+        DavSession *sn,
+        DavResource *res,
+        LocalResource *local);
+int sync_update_metadata(
+        SyncDirectory *dir,
+        DavSession *sn,
+        DavResource *res,
+        LocalResource *local);
 
 void remove_deleted_conflicts(SyncDirectory *dir, SyncDatabase *db);
 
@@ -152,7 +167,7 @@
 int cmd_remove_tag(CmdArgs *args);
 int cmd_set_tags(CmdArgs *args);
 int cmd_list_tags(CmdArgs *args);
-int cmd_tagopt(CmdArgs *args, int cmd);
+int cmd_tagop(CmdArgs *args, int cmd);
 
 /*
  * gets the syncdir and resource path for a given file path

mercurial