- def quote(self, string):
- """Quote & escape string so client interprets it as single token."""
- # FIXME: Don't do this as a method, makes no sense.
- quoted = []
- quoted += ['"']
- for c in string:
- if c in {'"', '\\'}:
- quoted += ['\\']
- quoted += [c]
- quoted += ['"']
- return ''.join(quoted)
-
-
-def run_server_with_io_loop(game):
- """Run connection of server talking to clients and game IO loop.
-
- We have the TCP server (an instance of Server) and we have the
- game IO loop, a thread running Game.io.loop. Both communicate with
- each other via a queue.Queue. While the TCP server may spawn
- parallel threads to many clients, the IO loop works sequentially
- through game commands received from the TCP server's threads (=
- client connections to the TCP server). A processed command may
- trigger messages to the commanding client or to all clients,
- delivered from the IO loop to the TCP server via the queue.
-
- """
- q = queue.Queue()
- c = threading.Thread(target=game.io.loop, daemon=True, args=(q,))
- c.start()
- server = Server(q)
- try:
- server.serve_forever()
- except KeyboardInterrupt:
- pass
- finally:
- print('Killing server')
- server.server_close()
+
+def quote(string):
+ """Quote & escape string so client interprets it as single token."""
+ quoted = []
+ quoted += ['"']
+ for c in string:
+ if c in {'"', '\\'}:
+ quoted += ['\\']
+ quoted += [c]
+ quoted += ['"']
+ return ''.join(quoted)
+
+
+def stringify_yx(tuple_):
+ """Transform tuple (y,x) into string 'Y:'+str(y)+',X:'+str(x)."""
+ return 'Y:' + str(tuple_[0]) + ',X:' + str(tuple_[1])