summaryrefslogtreecommitdiff
path: root/ick2/trans.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/trans.py')
-rw-r--r--ick2/trans.py40
1 files changed, 21 insertions, 19 deletions
diff --git a/ick2/trans.py b/ick2/trans.py
index c5dc22f..20e38ed 100644
--- a/ick2/trans.py
+++ b/ick2/trans.py
@@ -19,12 +19,13 @@ import ick2
class TransactionalResource:
- def __init__(self, state, kind, rid):
+ def __init__(self, token, state, kind, rid):
+ self.token = token
self.state = state
self.kind = kind
self.rid = rid
- if state.has_resource(kind, rid):
- self.resource = state.get_resource(kind, rid)
+ if state.has_resource(self.token, kind, rid):
+ self.resource = state.get_resource(self.token, kind, rid)
else:
self.resource = ick2.resource_from_dict({})
@@ -43,7 +44,8 @@ class TransactionalResource:
def __exit__(self, exc_type, value, traceback):
if exc_type is None:
- self.state.write_resource(self.kind, self.rid, self.resource)
+ self.state.write_resource(
+ self.token, self.kind, self.rid, self.resource)
class TransactionalState:
@@ -51,25 +53,25 @@ class TransactionalState:
def __init__(self, state):
self.state = state
- def new(self, kind, rid):
- return TransactionalResource(self.state, kind, rid)
+ def new(self, token, kind, rid):
+ return TransactionalResource(token, self.state, kind, rid)
- def modify(self, kind, rid):
- if not self.state.has_resource(kind, rid):
+ def modify(self, token, kind, rid):
+ if not self.state.has_resource(token, kind, rid):
raise ick2.NotFound(kind=kind, rid=rid)
- return TransactionalResource(self.state, kind, rid)
+ return TransactionalResource(token, self.state, kind, rid)
- def get_resource_ids(self, kind):
- return self.state.get_resource_ids(kind)
+ def get_resource_ids(self, token, kind):
+ return self.state.get_resource_ids(token, kind)
- def has_resource(self, kind, rid):
- return self.state.has_resource(kind, rid)
+ def has_resource(self, token, kind, rid):
+ return self.state.has_resource(token, kind, rid)
- def get_resource(self, kind, rid):
- return self.state.get_resource(kind, rid)
+ def get_resource(self, token, kind, rid):
+ return self.state.get_resource(token, kind, rid)
- def get_resources(self, kind):
- return self.state.get_resources(kind)
+ def get_resources(self, token, kind):
+ return self.state.get_resources(token, kind)
- def remove_resource(self, kind, rid):
- self.state.remove_resource(kind, rid)
+ def remove_resource(self, token, kind, rid):
+ self.state.remove_resource(token, kind, rid)