llvmpy/llvm/__init__.py
mdevan.foobar 04d61c9b66 Ready for 0.2 release.
git-svn-id: http://llvm-py.googlecode.com/svn/trunk@12 8d1e9007-1d4e-0410-b67e-1979fd6579aa
2008-06-15 03:37:56 +00:00

41 lines
982 B
Python

"""Common classes related to LLVM.
"""
VERSION = '0.2'
#===----------------------------------------------------------------------===
# Exceptions
#===----------------------------------------------------------------------===
class LLVMException(Exception):
def __init__(self, msg=""):
Exception.__init__(self, msg)
#===----------------------------------------------------------------------===
# Ownables
#===----------------------------------------------------------------------===
class Ownable(object):
def __init__(self, ptr, del_fn):
self.ptr = ptr
self.owner = None
self.del_fn = del_fn
def _own(self, owner):
if self.owner:
raise LLVMException, "object already owned"
self.owner = owner
def _disown(self):
if not self.owner:
raise LLVMException, "not owned"
self.owner = None
def __del__(self):
if not self.owner:
self.del_fn(self.ptr)