[libgames-support] Handle errors inside Importer



commit 6a20d928ced041fb0a1c8864bea6dc250dd4976f
Author: Michael Catanzaro <mcatanzaro igalia com>
Date:   Sun Feb 14 15:07:13 2016 -0600

    Handle errors inside Importer

 games/scores/context.vala            |   11 ++---------
 games/scores/directory-importer.vala |    2 +-
 games/scores/importer.vala           |   15 +++++++++++----
 3 files changed, 14 insertions(+), 14 deletions(-)
---
diff --git a/games/scores/context.vala b/games/scores/context.vala
index 584cd2c..13864f7 100644
--- a/games/scores/context.vala
+++ b/games/scores/context.vala
@@ -103,15 +103,8 @@ public class Context : Object
 
         user_score_dir = Path.build_filename (Environment.get_user_data_dir (), app_name, "scores", null);
 
-        try
-        {
-            if (importer != null)
-                importer.run (user_score_dir);
-        }
-        catch (Error e)
-        {
-            warning ("Score importer failed: %s", e.message);
-        }
+        if (importer != null)
+            importer.run (this, user_score_dir);
 
         try
         {
diff --git a/games/scores/directory-importer.vala b/games/scores/directory-importer.vala
index 7034df4..272e2e2 100644
--- a/games/scores/directory-importer.vala
+++ b/games/scores/directory-importer.vala
@@ -61,7 +61,7 @@ public class DirectoryImporter : Importer
      * from /var/games, since it's been several years since scores were removed
      * from there and most players will have lost them by now anyway.
      */
-    protected override void importOldScores (File new_scores_dir) throws Error
+    protected override void importOldScores (Context context, File new_scores_dir) throws Error
     {
         var original_scores_dir = new_scores_dir.get_parent ();
         assert (original_scores_dir != null);
diff --git a/games/scores/importer.vala b/games/scores/importer.vala
index cf55326..6e559f8 100644
--- a/games/scores/importer.vala
+++ b/games/scores/importer.vala
@@ -65,16 +65,23 @@ namespace Scores {
 
 public abstract class Importer : Object
 {
-    protected abstract void importOldScores (File new_scores_dir) throws Error;
+    protected abstract void importOldScores (Context context, File new_scores_dir) throws Error;
 
-    internal void run (string new_scores_dir) throws Error
+    internal void run (Context context, string new_scores_dir)
     {
         var new_dir = File.new_for_path (new_scores_dir);
         if (new_dir.query_exists ())
             return;
-        new_dir.make_directory ();
 
-        importOldScores (new_dir);
+        try
+        {
+            new_dir.make_directory ();
+            importOldScores (context, new_dir);
+        }
+        catch (Error e)
+        {
+            warning ("Failed to import scores: %s", e.message);
+        }
     }
 }
 


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