[gnome-games/sudoku-tube] First try to transfer the puzzle to the peer
- From: Zhang Sen <zhangsen src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-games/sudoku-tube] First try to transfer the puzzle to the peer
- Date: Mon, 29 Jun 2009 12:58:35 +0000 (UTC)
commit 72cbb93bfd0897a38136b22bbd42c4f912e49e22
Author: Zhang Sen <zh jesse gmail com>
Date: Mon Jun 29 20:56:49 2009 +0800
First try to transfer the puzzle to the peer
The receiver can get the game from the initiator, though very primitive
gnome-sudoku/src/lib/main.py | 14 +++++++++-----
gnome-sudoku/src/lib/networking.py | 10 ++++++----
2 files changed, 15 insertions(+), 9 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index 624bf65..10b9183 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -459,10 +459,14 @@ class UI (gconf_wrapper.GConfWrapper):
self.gconf[k] = v
self.player = self.gconf['player']
- def _tube_received_cb(self, tube_conn):
- game_server = tube_conn.get_object(object_path="/Game")
- print "got reply from server: %s" % \
- game_server.test("hi there from client")
+ def _get_server(self, bus):
+ return bus.get_object(object_path="/Game")
+
+ def _tube_received_cb(self, bus):
+ game_server = self._get_server(bus)
+ puzzle = str(game_server.get_puzzle())
+ logger.info("get puzzle from server: %s" % puzzle)
+ self._open_game(game_selector.NewOrSavedGameSelector.NEW_GAME, puzzle)
def new_cb (self, *args):
if self._close_current_game():
@@ -481,7 +485,7 @@ class UI (gconf_wrapper.GConfWrapper):
logger.info("None selected")
def _tube_open_cb(self, bus, obj_path):
- """Called when the offered tube is open"""
+ """Called when the peer accepts our tube"""
server = networking.GameServer(bus, obj_path, self)
logger.info("server created")
diff --git a/gnome-sudoku/src/lib/networking.py b/gnome-sudoku/src/lib/networking.py
index 5e44935..ae8ebf2 100644
--- a/gnome-sudoku/src/lib/networking.py
+++ b/gnome-sudoku/src/lib/networking.py
@@ -10,11 +10,13 @@ class GameServer(dbus.service.Object):
"""Expose the game on dbus, so the others can listen to it"""
server_interface = "org.gnome.Sudoku.server"
+
def __init__(self, bus, obj_path, game):
super(GameServer, self).__init__(bus, obj_path)
+ self.game = game
@dbus.service.method(dbus_interface=server_interface,
- in_signature='s', out_signature='s')
- def test(self, message):
- logger.info("get msg from client: %s" % message)
- return "hello from server"
+ in_signature="", out_signature="s")
+ def get_puzzle(self):
+ logger.info("client is asking for the puzzle")
+ return self.game._game
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]