diff options
Diffstat (limited to 'sugar/p2p/model/Store.py')
-rw-r--r-- | sugar/p2p/model/Store.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sugar/p2p/model/Store.py b/sugar/p2p/model/Store.py new file mode 100644 index 0000000..d39783f --- /dev/null +++ b/sugar/p2p/model/Store.py @@ -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, LocalModel.SERVICE_TYPE) + if service: + return RemoteModel(service) + else: + return None |