Mercurial > parpg-core
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