diff src/parpg/components/lockable.py @ 49:3024ded5ae61

Added functions for Lockable
author KarstenBock@gmx.net
date Fri, 02 Sep 2011 15:57:27 +0200
parents 1cc037593517
children 96af64cf3b81
line wrap: on
line diff
--- a/src/parpg/components/lockable.py	Fri Sep 02 15:56:35 2011 +0200
+++ b/src/parpg/components/lockable.py	Fri Sep 02 15:57:27 2011 +0200
@@ -15,7 +15,33 @@
 
 class Lockable(Component):
     """Component that stores the data of a lock"""
-    
+
     def __init__(self):
         """Constructor"""
-        Component.__init__(self, locked=bool)
+        Component.__init__(self, closed=bool, locked=bool)
+
+class LockedError(Exception):
+
+    def __str__(self):
+        return "Is locked"
+
+class OpenError(Exception):
+
+    def __str__(self):
+        return "Is open"
+
+def lock(lock):
+    if not lock.closed:
+        raise OpenError
+    lock.locked = True    
+
+def unlock(lock):
+    lock.locked = False
+
+def open(lock):
+    if lock.locked:
+        raise LockedError
+    lock.closed = False
+
+def close(lock):
+    lock.closed = True
\ No newline at end of file