1.1 --- a/com.py Sun Jun 13 04:34:03 2010 +0200
1.2 +++ b/com.py Mon Jun 14 14:32:12 2010 +0200
1.3 @@ -56,14 +56,27 @@
1.4 def update(socket, client, worker, (modelName, iterations)):
1.5 model = lookupModel(socket, client, modelName)
1.6 if model:
1.7 - for w in worker:
1.8 + old_res = model.resolution
1.9 + begin_y = model.range[0].imag
1.10 + end_y = model.range[1].imag
1.11 + begin_x = model.range[0].real
1.12 + end_x = model.range[1].real
1.13 + step_x = (end_x - begin_x) / len(worker)
1.14 + model.resolution = (old_res[0] / len(worker), old_res[1])
1.15 +
1.16 + for i, w in enumerate(worker):
1.17 + new_begin_x = begin_x + step_x * i
1.18 + new_end_x = begin_x + step_x * (i + 1)
1.19 + model.range = (complex(new_begin_x, begin_y),
1.20 + complex(new_end_x, end_y))
1.21 + print model.range
1.22 + print model.resolution
1.23 dump = pickle.dumps(model)
1.24 - print w
1.25 - socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)),
1.26 - w)
1.27 - #model.update(int(iterations))
1.28 + socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)), w)
1.29 socket.sendto("model %s updated with max %s iterations\n"
1.30 % (modelName, iterations), client)
1.31 + model.range = (complex(begin_x, begin_y), complex(end_x, end_y))
1.32 + model.resolution = old_res
1.33
1.34 commands = {"help": (help, "help"),
1.35 "create model": (createModel, "creates a new model"),
1.36 @@ -73,4 +86,4 @@
1.37 "set resolution": (setResolution, "sets the model resolution"),
1.38 "set range": (setRange, "sets the model range"),
1.39 "update": (update, "updates the model data"),
1.40 - "add observer": (addObserver, "adds an observer to a model's events")}
1.41 + "add observer": (addObserver, "adds an observer to a model's events"),}