Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/p2p/model/Store.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/p2p/model/Store.py')
-rw-r--r--sugar/p2p/model/Store.py22
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..ae86dc1
--- /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, MODEL_SERVICE_TYPE)
+ if service:
+ return RemoteModel(service)
+ else:
+ return None