sawine@0: import grid sawine@0: sawine@1: commands = {} sawine@1: sawine@1: def help(socket, client): sawine@1: socket.sendto("\n".join([key + ": " + value[1] sawine@1: for key, value in commands.iteritems()]) + "\n", client) sawine@1: sawine@0: def createGrid(socket, client, (name,)): sawine@0: grid.createGrid(name) sawine@0: #print "grid %s created" % name sawine@0: socket.sendto("grid %s created\n" % name, client) sawine@0: sawine@0: def listGrids(socket, client): sawine@0: #print grid.grids sawine@0: socket.sendto(" ".join(grid.grids.iterkeys()) + "\n", client) sawine@0: sawine@0: def lookupGrid(socket, client, name): sawine@0: if name not in grid.grids: sawine@0: socket.sendto("grid %s not found\n" % name, client) sawine@0: return None sawine@0: else: sawine@0: return grid.grids[name] sawine@0: sawine@0: def listCells(socket, client, (gridName,)): sawine@0: grid = lookupGrid(socket, client, gridName) sawine@0: if grid: sawine@0: socket.sendto(" ".join([str(cell) for cell in grid.cells.itervalues()]) sawine@0: + "\n", client) sawine@0: sawine@0: def setCell(socket, client, (gridName, cellId, value)): sawine@0: grid = lookupGrid(socket, client, gridName) sawine@0: if grid: sawine@0: grid.set(int(cellId), int(value)) sawine@0: #socket.sendto("cell %s on grid %s set to %s\n" %(cellId, gridName, value), sawine@0: # client) sawine@0: sawine@0: def iterate(socket, client, (gridName, iterNo)): sawine@0: pass sawine@0: sawine@0: def addObserver(socket, client, (gridName,)): sawine@0: grid = lookupGrid(socket, client, gridName) sawine@0: if grid: sawine@0: grid.addObserver(socket, client) sawine@1: socket.sendto("observer added: " + str(client) + "\n", client) sawine@0: sawine@1: commands = {"help": (help, "help"), sawine@1: "create grid": (createGrid, "creates grid"), sawine@1: "list grids": (listGrids, "lists all grids"), sawine@1: "set cell": (setCell, "sets the value of a cell"), sawine@1: "list cells": (listCells, "lists all cells of a grid"), sawine@1: "iterate": (iterate, "iterates"), sawine@1: "add observer": (addObserver, "adds an observer to a grid's events")}