Split the model classes in different files

Marco Pesenti Gritti 18 years ago
parent 931c362543
commit e0a046cd53

@ -22,5 +22,6 @@ sugar/__installed__.py
sugar/browser/Makefile
sugar/chat/Makefile
sugar/p2p/Makefile
sugar/p2p/model/Makefile
sugar/shell/Makefile
])

@ -3,7 +3,6 @@ sugar_PYTHON = \
__init__.py \
Buddy.py \
Group.py \
Model.py \
Service.py \
StreamReader.py \
StreamWriter.py \

@ -1,24 +1,10 @@
MODEL_SERVICE_TYPE = "_olpc_model._tcp"
MODEL_SERVICE_PORT = 6300
import socket
import xmlrpclib
from sugar.p2p.Service import Service
import network
class RemoteModel:
def __init__(self, service):
self._service = service
addr = "http://%s:%d" % (service.get_address(), service.get_port())
self._client = xmlrpclib.ServerProxy(addr)
def get_value(self, key):
return self._client.get_value(key)
def set_value(self, key, value):
self._client.set_value(key, value)
MODEL_SERVICE_TYPE = "_olpc_model._tcp"
MODEL_SERVICE_PORT = 6300
class ModelRequestHandler(object):
def __init__(self, model):
@ -64,23 +50,3 @@ class LocalModel:
port = port + 1
tries = tries - 1
service.set_port(port)
class Store:
def __init__(self, group):
self._group = group
self._local_models = {}
def create_model(self, model_id):
model = LocalModel(self._group, model_id)
self._local_models[model_id] = model
return model
def get_model(self, model_id):
if self._local_models.has_key(model_id):
return self._local_models(model_id)
else:
service = self._group.get_service(model_id, MODEL_SERVICE_TYPE)
if service:
return RemoteModel(service)
else:
return None

@ -0,0 +1,6 @@
sugardir = $(pythondir)/sugar/p2p/model
sugar_PYTHON = \
__init__.py \
LocalModel.py \
RemoteModel.py \
Store.py

@ -0,0 +1,17 @@
import xmlrpclib
from sugar.p2p.Service import Service
import network
class RemoteModel:
def __init__(self, service):
self._service = service
addr = "http://%s:%d" % (service.get_address(), service.get_port())
self._client = xmlrpclib.ServerProxy(addr)
def get_value(self, key):
return self._client.get_value(key)
def set_value(self, key, value):
self._client.set_value(key, value)

@ -0,0 +1,22 @@
from sugar.p2p.model.RemoteModel import RemoteModel
from sugar.p2p.model.LocalModel import LocalModel
class Store:
def __init__(self, group):
self._group = group
self._local_models = {}
def create_model(self, model_id):
model = LocalModel(self._group, model_id)
self._local_models[model_id] = model
return model
def get_model(self, model_id):
if self._local_models.has_key(model_id):
return self._local_models(model_id)
else:
service = self._group.get_service(model_id, MODEL_SERVICE_TYPE)
if service:
return RemoteModel(service)
else:
return None
Loading…
Cancel
Save