# HG changeset patch # User KarstenBock@gmx.net # Date 1314971847 -7200 # Node ID 3024ded5ae615b0e92185ca1a91e2e9141a29e52 # Parent c017773e844318e990b31cdfcb6d09ae67e2455d Added functions for Lockable diff -r c017773e8443 -r 3024ded5ae61 src/parpg/components/lockable.py --- 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