Mercurial > parpg-source
diff components/lockable.py @ 25:d13924109572
Added functions for Lockable
author | KarstenBock@gmx.net |
---|---|
date | Fri, 02 Sep 2011 15:57:27 +0200 |
parents | def430d59281 |
children | ff3e395abf91 |
line wrap: on
line diff
--- a/components/lockable.py Fri Sep 02 12:54:43 2011 +0200 +++ b/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