diff -r 0ebb73fd094a -r b887ce19c300 com.py --- a/com.py Sun Jun 13 01:53:58 2010 +0200 +++ b/com.py Sun Jun 13 04:34:03 2010 +0200 @@ -3,28 +3,27 @@ commands = {} -def help(socket, client): +def help(socket, client, worker): socket.sendto("\n".join([key + ": " + value[1] for key, value in commands.iteritems()]) + "\n", client) -def createModel(socket, client, (name,)): +def createModel(socket, client, worker, (name,)): model.createModel(name) socket.sendto("model %s created\n" % name, client) -def deleteModel(socket, client, (name,)): +def deleteModel(socket, client, worker, (name,)): if model.deleteModel(name): socket.sendto("model %s deleted\n" % name, client) -def saveModel(socket, client, (name,)): +def saveModel(socket, client, worker, (name,)): model = lookupModel(socket, client, name) if model: pickle.dump(model, open(name, "w")) socket.sendto("model %s saved\n" % name, client) -def loadModel(socket, client, (name,)): +def loadModel(socket, client, worker, (name,)): model.addModel(pickle.load(open(name, "r"))) - socket.sendto("model %s loaded\n" % name, client) - + socket.sendto("model %s loaded\n" % name, client) def lookupModel(socket, client, name): if name not in model.models: @@ -33,31 +32,36 @@ else: return model.models[name] -def addObserver(socket, client, (modelName, eventType)): +def addObserver(socket, client, worker, (modelName, eventType)): model = lookupModel(socket, client, modelName) if model: model.register(socket, client, eventType) socket.sendto("observer for event type %s added: " % eventType + str(client) + "\n", client) -def setResolution(socket, client, (modelName, x, y)): +def setResolution(socket, client, worker, (modelName, x, y)): model = lookupModel(socket, client, modelName) if model: model.setResolution(int(x), int(y)) socket.sendto("model %s resolution set to %s, %s\n" % (modelName, x, y), client) -def setRange(socket, client, (modelName, begin, end)): +def setRange(socket, client, worker, (modelName, begin, end)): model = lookupModel(socket, client, modelName) if model: model.setRange(complex(begin), complex(end)) socket.sendto("model %s range set to %s, %s\n" % (modelName, begin, end), client) -def update(socket, client, (modelName, iterations)): +def update(socket, client, worker, (modelName, iterations)): model = lookupModel(socket, client, modelName) if model: - model.update(int(iterations)) + for w in worker: + dump = pickle.dumps(model) + print w + socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)), + w) + #model.update(int(iterations)) socket.sendto("model %s updated with max %s iterations\n" % (modelName, iterations), client)