[gnome-games] database: Add DatabaseGame



commit af74f2c0c07c0241be66497819278ec105b55466
Author: theawless <theawless gmail com>
Date:   Sun Aug 26 07:11:31 2018 +0530

    database: Add DatabaseGame
    
    This is a wrapper over Game to lazily cache metadata objects.

 src/database/database-game.vala | 67 +++++++++++++++++++++++++++++++++++++++++
 src/meson.build                 |  1 +
 2 files changed, 68 insertions(+)
---
diff --git a/src/database/database-game.vala b/src/database/database-game.vala
new file mode 100644
index 00000000..fe322f5b
--- /dev/null
+++ b/src/database/database-game.vala
@@ -0,0 +1,67 @@
+// This file is part of GNOME Games. License: GPL-3.0+.
+
+private class Games.DatabaseGame : Object, Game {
+       public string name {
+               get { return game.name; }
+       }
+
+       private Database database;
+       private Game game;
+
+       public DatabaseGame (Database database, Game game) {
+               this.database = database;
+               this.game = game;
+       }
+
+       public Uid get_uid () {
+               return database.get_uid (game.get_uid ());
+       }
+
+       public Icon get_icon () {
+               return game.get_icon ();
+       }
+
+       public Cover get_cover () {
+               return game.get_cover ();
+       }
+
+       public ReleaseDate get_release_date () {
+               return game.get_release_date ();
+       }
+
+       public Cooperative get_cooperative () {
+               return game.get_cooperative ();
+       }
+
+       public Genre get_genre () {
+               return game.get_genre ();
+       }
+
+       public Players get_players () {
+               return game.get_players ();
+       }
+
+       public Developer get_developer () {
+               return database.get_developer (game.get_developer (), get_uid ());
+       }
+
+       public Publisher get_publisher () {
+               return game.get_publisher ();
+       }
+
+       public Description get_description () {
+               return game.get_description ();
+       }
+
+       public Rating get_rating () {
+               return game.get_rating ();
+       }
+
+       public Platform get_platform () {
+               return game.get_platform ();
+       }
+
+       public Runner get_runner () throws Error {
+               return game.get_runner ();
+       }
+}
diff --git a/src/meson.build b/src/meson.build
index c28123ff..6c556d47 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -48,6 +48,7 @@ vala_sources = [
   'database/database.vala',
   'database/database-developer.vala',
   'database/database-error.vala',
+  'database/database-game.vala',
   'database/database-uid.vala',
   'database/database-uri-iterator.vala',
   'database/database-uri-source.vala',


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