com.py
changeset 3 234fa7eea0df
parent 2 b887ce19c300
child 4 4cee17e91d29
     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"),}