com.py
changeset 2 b887ce19c300
parent 0 a99535269d60
child 3 234fa7eea0df
     1.1 --- a/com.py	Sun Jun 13 01:53:58 2010 +0200
     1.2 +++ b/com.py	Sun Jun 13 04:34:03 2010 +0200
     1.3 @@ -3,28 +3,27 @@
     1.4  
     1.5  commands = {}
     1.6  
     1.7 -def help(socket, client):
     1.8 +def help(socket, client, worker):
     1.9  	socket.sendto("\n".join([key + ": " + value[1] 
    1.10  		for key, value in commands.iteritems()]) + "\n", client)
    1.11  
    1.12 -def createModel(socket, client, (name,)):
    1.13 +def createModel(socket, client, worker, (name,)):
    1.14  	model.createModel(name)
    1.15  	socket.sendto("model %s created\n" % name, client)
    1.16  	
    1.17 -def deleteModel(socket, client, (name,)):
    1.18 +def deleteModel(socket, client, worker, (name,)):
    1.19  	if model.deleteModel(name):
    1.20  		socket.sendto("model %s deleted\n" % name, client)
    1.21  		
    1.22 -def saveModel(socket, client, (name,)):
    1.23 +def saveModel(socket, client, worker, (name,)):
    1.24  	model = lookupModel(socket, client, name)
    1.25  	if model:
    1.26  		pickle.dump(model, open(name, "w"))
    1.27  		socket.sendto("model %s saved\n" % name, client)
    1.28  		
    1.29 -def loadModel(socket, client, (name,)):	
    1.30 +def loadModel(socket, client, worker, (name,)):	
    1.31  	model.addModel(pickle.load(open(name, "r")))
    1.32 -	socket.sendto("model %s loaded\n" % name, client)
    1.33 -		
    1.34 +	socket.sendto("model %s loaded\n" % name, client)		
    1.35  		
    1.36  def lookupModel(socket, client, name):
    1.37  	if name not in model.models:
    1.38 @@ -33,31 +32,36 @@
    1.39  	else:
    1.40  		return model.models[name]
    1.41  		
    1.42 -def addObserver(socket, client, (modelName, eventType)):
    1.43 +def addObserver(socket, client, worker, (modelName, eventType)):
    1.44  	model = lookupModel(socket, client, modelName)
    1.45  	if model:
    1.46  		model.register(socket, client, eventType)
    1.47  		socket.sendto("observer for event type %s added: " % eventType 
    1.48  			+ str(client) + "\n", client)
    1.49  		
    1.50 -def setResolution(socket, client, (modelName, x, y)):
    1.51 +def setResolution(socket, client, worker, (modelName, x, y)):
    1.52  	model = lookupModel(socket, client, modelName)
    1.53  	if model:
    1.54  		model.setResolution(int(x), int(y))
    1.55  		socket.sendto("model %s resolution set to %s, %s\n" % 
    1.56  			(modelName, x, y), client)
    1.57  			
    1.58 -def setRange(socket, client, (modelName, begin, end)):
    1.59 +def setRange(socket, client, worker, (modelName, begin, end)):
    1.60  	model = lookupModel(socket, client, modelName)
    1.61  	if model:
    1.62  		model.setRange(complex(begin), complex(end))
    1.63  		socket.sendto("model %s range set to %s, %s\n" % 
    1.64  			(modelName, begin, end), client)
    1.65  
    1.66 -def update(socket, client, (modelName, iterations)):
    1.67 +def update(socket, client, worker, (modelName, iterations)):
    1.68  	model = lookupModel(socket, client, modelName)
    1.69  	if model:
    1.70 -		model.update(int(iterations))
    1.71 +		for w in worker:
    1.72 +			dump = pickle.dumps(model)
    1.73 +			print w
    1.74 +			socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)),
    1.75 +				w) 
    1.76 +		#model.update(int(iterations))
    1.77  		socket.sendto("model %s updated with max %s iterations\n" 
    1.78  			% (modelName, iterations), client)
    1.79