com.py
author Eugen Sawin <sawine@me73.com>
Fri, 31 Dec 2010 02:56:40 +0100
changeset 8 0db344245ac2
parent 0 fb00185487d4
permissions -rwxr-xr-x
Streamlined program interface.
     1 import grid
     2 
     3 commands = {}
     4 
     5 def help(socket, client):
     6 	socket.sendto("\n".join([key + ": " + value[1] 
     7 		for key, value in commands.iteritems()]) + "\n", client)
     8 
     9 def createGrid(socket, client, (name,)):
    10 	grid.createGrid(name)
    11 	#print "grid %s created" % name
    12 	socket.sendto("grid %s created\n" % name, client)
    13 	
    14 def listGrids(socket, client):
    15 	#print grid.grids
    16 	socket.sendto(" ".join(grid.grids.iterkeys()) + "\n", client)
    17 
    18 def lookupGrid(socket, client, name):
    19 	if name not in grid.grids:
    20 		socket.sendto("grid %s not found\n" % name, client)
    21 		return None
    22 	else:
    23 		return grid.grids[name]
    24 		
    25 def listCells(socket, client, (gridName,)):
    26 	grid = lookupGrid(socket, client, gridName)
    27 	if grid:
    28 		socket.sendto(" ".join([str(cell) for cell in grid.cells.itervalues()])
    29 			+ "\n", client)
    30 				
    31 def setCell(socket, client, (gridName, cellId, value)):
    32 	grid = lookupGrid(socket, client, gridName)
    33 	if grid:
    34 		grid.set(int(cellId), int(value))
    35 		#socket.sendto("cell %s on grid %s set to %s\n" %(cellId, gridName, value),
    36 		#	client)
    37 			
    38 def iterate(socket, client, (gridName, iterNo)):
    39 	pass			
    40 
    41 def addObserver(socket, client, (gridName,)):
    42 	grid = lookupGrid(socket, client, gridName)
    43 	if grid:
    44 		grid.addObserver(socket, client)
    45 		socket.sendto("observer added: " + str(client) + "\n", client)
    46 		
    47 commands = {"help": (help, "help"),
    48 	"create grid": (createGrid, "creates grid"),
    49 	"list grids": (listGrids, "lists all grids"),
    50 	"set cell": (setCell, "sets the value of a cell"),
    51 	"list cells": (listCells, "lists all cells of a grid"),
    52 	"iterate": (iterate, "iterates"),
    53 	"add observer": (addObserver, "adds an observer to a grid's events")}