[gnome-games/wip/exalm/loading: 8/29] generic: Add GenericRunnerFactory
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/loading: 8/29] generic: Add GenericRunnerFactory
- Date: Mon, 11 Nov 2019 21:45:20 +0000 (UTC)
commit c43949f746c5576baf3a36c9969ba1c7a65daf8e
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Tue Nov 12 00:22:01 2019 +0500
generic: Add GenericRunnerFactory
src/generic/generic-runner-factory.vala | 25 +++++++++++++++++++++++++
src/meson.build | 1 +
2 files changed, 26 insertions(+)
---
diff --git a/src/generic/generic-runner-factory.vala b/src/generic/generic-runner-factory.vala
new file mode 100644
index 00000000..56a43ed5
--- /dev/null
+++ b/src/generic/generic-runner-factory.vala
@@ -0,0 +1,25 @@
+// This file is part of GNOME Games. License: GPL-3.0+.
+
+public class Games.GenericRunnerFactory : Object, RunnerFactory {
+ public delegate Runner? CreateRunner (Game game) throws Error;
+
+ private Platform[] platforms;
+ private CreateRunner callback;
+
+ public GenericRunnerFactory (owned CreateRunner callback) {
+ this.callback = (owned) callback;
+ platforms = {};
+ }
+
+ public void add_platform (Platform platform) {
+ platforms += platform;
+ }
+
+ public override Platform[] get_platforms () {
+ return platforms;
+ }
+
+ public Runner? create_runner (Game game) throws Error {
+ return callback (game);
+ }
+}
diff --git a/src/meson.build b/src/meson.build
index a7805a43..2b8def07 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -69,6 +69,7 @@ vala_sources = [
'generic/generic-game.vala',
'generic/generic-game-uri-adapter.vala',
'generic/generic-platform.vala',
+ 'generic/generic-runner-factory.vala',
'generic/generic-title.vala',
'generic/generic-uid.vala',
'generic/generic-uri-game-factory.vala',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]