[ostree] core: Propagate GCancellable a bit from the import APIs



commit 23d01d97ddc3936da235257dfa661c62b5fbd59a
Author: Colin Walters <walters verbum org>
Date:   Wed Nov 30 22:20:25 2011 -0500

    core: Propagate GCancellable a bit from the import APIs

 src/libostree/ostree-repo.c         |   42 ++++++++++++++++++++--------------
 src/libostree/ostree-repo.h         |    1 +
 src/ostree/ot-builtin-local-clone.c |    2 +
 3 files changed, 28 insertions(+), 17 deletions(-)
---
diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c
index 4a6f59c..c1ff605 100644
--- a/src/libostree/ostree-repo.c
+++ b/src/libostree/ostree-repo.c
@@ -638,6 +638,7 @@ write_gvariant_to_tmp (OstreeRepo  *self,
                        GVariant    *variant,
                        GFile        **out_tmpname,
                        GChecksum    **out_checksum,
+                       GCancellable  *cancellable,
                        GError       **error)
 {
   gboolean ret = FALSE;
@@ -651,7 +652,7 @@ write_gvariant_to_tmp (OstreeRepo  *self,
                                              g_variant_get_size (serialized),
                                              NULL);
   if (!stage_and_checksum (self, OSTREE_OBJECT_TYPE_META,
-                           mem, &ret_tmpname, &ret_checksum, NULL, error))
+                           mem, &ret_tmpname, &ret_checksum, cancellable, error))
     goto out;
   
   ret = TRUE;
@@ -676,6 +677,7 @@ import_gvariant_object (OstreeRepo  *self,
                         OstreeSerializedVariantType type,
                         GVariant       *variant,
                         GChecksum    **out_checksum,
+                        GCancellable *cancellable,
                         GError       **error)
 {
   gboolean ret = FALSE;
@@ -683,13 +685,13 @@ import_gvariant_object (OstreeRepo  *self,
   GChecksum *ret_checksum = NULL;
   gboolean did_exist;
   
-  if (!write_gvariant_to_tmp (self, type, variant, &tmp_path, &ret_checksum, error))
+  if (!write_gvariant_to_tmp (self, type, variant, &tmp_path, &ret_checksum, cancellable, error))
     goto out;
 
   if (!ostree_repo_store_object_trusted (self, tmp_path,
                                          g_checksum_get_string (ret_checksum),
                                          OSTREE_OBJECT_TYPE_META,
-                                         FALSE, &did_exist, error))
+                                         FALSE, &did_exist, cancellable, error))
     goto out;
 
   ret = TRUE;
@@ -737,6 +739,7 @@ import_directory_meta (OstreeRepo  *self,
                        GFile       *f,
                        GVariant  **out_variant,
                        GChecksum **out_checksum,
+                       GCancellable *cancellable,
                        GError    **error)
 {
   gboolean ret = FALSE;
@@ -746,15 +749,15 @@ import_directory_meta (OstreeRepo  *self,
 
   f_info = g_file_query_info (f, OSTREE_GIO_FAST_QUERYINFO,
                               G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
-                              NULL, error);
+                              cancellable, error);
   if (!f_info)
     goto out;
 
-  if (!ostree_get_directory_metadata (f, f_info, &dirmeta, NULL, error))
+  if (!ostree_get_directory_metadata (f, f_info, &dirmeta, cancellable, error))
     goto out;
   
   if (!import_gvariant_object (self, OSTREE_SERIALIZED_DIRMETA_VARIANT, 
-                               dirmeta, &ret_checksum, error))
+                               dirmeta, &ret_checksum, cancellable, error))
     goto out;
 
   ret = TRUE;
@@ -827,6 +830,7 @@ link_object_trusted (OstreeRepo   *self,
                      OstreeObjectType objtype,
                      gboolean      overwrite,
                      gboolean     *did_exist,
+                     GCancellable *cancellable,
                      GError      **error)
 {
   gboolean ret = FALSE;
@@ -879,6 +883,7 @@ archive_file_trusted (OstreeRepo   *self,
                       const char   *checksum,
                       gboolean      overwrite,
                       gboolean     *did_exist,
+                      GCancellable *cancellable,
                       GError      **error)
 {
   GFileOutputStream *out = NULL;
@@ -893,13 +898,13 @@ archive_file_trusted (OstreeRepo   *self,
 
   if (overwrite)
     {
-      out = g_file_replace (dest_file, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL, error);
+      out = g_file_replace (dest_file, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, cancellable, error);
       if (!out)
         goto out;
     }
   else
     {
-      out = g_file_create (dest_file, 0, NULL, &temp_error);
+      out = g_file_create (dest_file, 0, cancellable, &temp_error);
       if (!out)
         {
           if (g_error_matches (temp_error, G_IO_ERROR, G_IO_ERROR_EXISTS))
@@ -916,10 +921,10 @@ archive_file_trusted (OstreeRepo   *self,
 
   if (out)
     {
-      if (!ostree_pack_file ((GOutputStream*)out, file, NULL, error))
+      if (!ostree_pack_file ((GOutputStream*)out, file, cancellable, error))
         goto out;
       
-      if (!g_output_stream_close ((GOutputStream*)out, NULL, error))
+      if (!g_output_stream_close ((GOutputStream*)out, cancellable, error))
         goto out;
     }
 
@@ -939,13 +944,14 @@ ostree_repo_store_object_trusted (OstreeRepo   *self,
                                   OstreeObjectType objtype,
                                   gboolean      overwrite,
                                   gboolean     *did_exist,
+                                  GCancellable *cancellable,
                                   GError      **error)
 {
   OstreeRepoPrivate *priv = GET_PRIVATE (self);
   if (priv->archive && objtype == OSTREE_OBJECT_TYPE_FILE)
-    return archive_file_trusted (self, file, checksum, overwrite, did_exist, error);
+    return archive_file_trusted (self, file, checksum, overwrite, did_exist, cancellable, error);
   else
-    return link_object_trusted (self, file, checksum, objtype, overwrite, did_exist, error);
+    return link_object_trusted (self, file, checksum, objtype, overwrite, did_exist, cancellable, error);
 }
 
 gboolean
@@ -979,7 +985,7 @@ ostree_repo_store_packfile (OstreeRepo       *self,
   if (!ostree_repo_store_object_trusted (self, tempfile,
                                          expected_checksum,
                                          objtype,
-                                         FALSE, did_exist, error))
+                                         FALSE, did_exist, NULL, error))
     goto out;
 
   ret = TRUE;
@@ -1061,7 +1067,7 @@ import_commit (OstreeRepo *self,
                           g_checksum_get_string (root_metadata_checksum));
   g_variant_ref_sink (commit);
   if (!import_gvariant_object (self, OSTREE_SERIALIZED_COMMIT_VARIANT,
-                               commit, &ret_commit, error))
+                               commit, &ret_commit, NULL, error))
     goto out;
 
   if (!ostree_repo_write_ref (self, NULL, branch, g_checksum_get_string (ret_commit), error))
@@ -1111,7 +1117,7 @@ import_directory_recurse (OstreeRepo           *self,
   GVariant *serialized_tree = NULL;
   gpointer key, value;
 
-  if (!import_directory_meta (self, dir, NULL, &ret_metadata_checksum, error))
+  if (!import_directory_meta (self, dir, NULL, &ret_metadata_checksum, cancellable, error))
     goto out;
 
   dir_enum = g_file_enumerate_children ((GFile*)dir, OSTREE_GIO_FAST_QUERYINFO, 
@@ -1158,7 +1164,7 @@ import_directory_recurse (OstreeRepo           *self,
             goto out;
           
           if (!ostree_repo_store_object_trusted (self, child, g_checksum_get_string (child_file_checksum),
-                                                 OSTREE_OBJECT_TYPE_FILE, FALSE, &did_exist, error))
+                                                 OSTREE_OBJECT_TYPE_FILE, FALSE, &did_exist, cancellable, error))
             goto out;
 
           g_hash_table_replace (file_checksums, g_strdup (name),
@@ -1228,7 +1234,9 @@ import_directory_recurse (OstreeRepo           *self,
   builders_initialized = FALSE;
   g_variant_ref_sink (serialized_tree);
 
-  if (!import_gvariant_object (self, OSTREE_SERIALIZED_TREE_VARIANT, serialized_tree, &ret_contents_checksum, error))
+  if (!import_gvariant_object (self, OSTREE_SERIALIZED_TREE_VARIANT,
+                               serialized_tree, &ret_contents_checksum,
+                               cancellable, error))
     goto out;
 
   *out_metadata_checksum = ret_metadata_checksum;
diff --git a/src/libostree/ostree-repo.h b/src/libostree/ostree-repo.h
index f8b064a..43d14d2 100644
--- a/src/libostree/ostree-repo.h
+++ b/src/libostree/ostree-repo.h
@@ -84,6 +84,7 @@ gboolean      ostree_repo_store_object_trusted (OstreeRepo   *self,
                                                 OstreeObjectType objtype,
                                                 gboolean      overwrite,
                                                 gboolean     *did_exist,
+                                                GCancellable *cancellable,
                                                 GError      **error);
 
 gboolean      ostree_repo_resolve_rev (OstreeRepo  *self,
diff --git a/src/ostree/ot-builtin-local-clone.c b/src/ostree/ot-builtin-local-clone.c
index d9227a2..7d440b5 100644
--- a/src/ostree/ot-builtin-local-clone.c
+++ b/src/ostree/ot-builtin-local-clone.c
@@ -115,6 +115,7 @@ object_iter_callback (OstreeRepo   *repo,
                                              objtype,
                                              FALSE,
                                              &did_exist,
+                                             NULL,
                                              &error))
         goto out;
     }
@@ -126,6 +127,7 @@ object_iter_callback (OstreeRepo   *repo,
                                              objtype,
                                              FALSE,
                                              &did_exist,
+                                             NULL,
                                              &error))
         goto out;
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]