sawine@0: grids = {} sawine@0: sawine@0: def createGrid(name): sawine@0: grids[name] = Grid(name) sawine@0: sawine@0: class Cell(object): sawine@0: sawine@0: def __init__(self, id, value): sawine@0: self.id = id sawine@0: self.value = value sawine@0: sawine@0: def __str__(self): sawine@0: return "(id:%s value:%s)" % (self.id, self.value) sawine@0: sawine@0: class Grid(object): sawine@0: sawine@0: def __init__(self, name): sawine@0: self.name = name sawine@0: self.cells = {} sawine@0: self.observers = [] sawine@0: sawine@0: def set(self, cellId, value): sawine@0: if value and cellId not in self.cells: sawine@0: self.cells[cellId] = Cell(cellId, value) sawine@0: self.dispatch(Cell(cellId, 0), self.cells[cellId]) sawine@0: elif not value and cellId in self.cells: sawine@0: self.dispatch(self.cells[cellId], Cell(cellId, 0)) sawine@0: del self.cells[cellId] sawine@0: sawine@0: def dispatch(self, old, new): sawine@0: for o in self.observers: sawine@0: o[0].sendto("old: %s\nnew: %s\n" % (old, new), o[1]) sawine@0: sawine@0: def addObserver(self, socket, observer): sawine@0: self.observers.append((socket, observer)) sawine@0: sawine@0: