{-# LANGUAGE TemplateHaskell, ExistentialQuantification, DeriveDataTypeable #-} module Database.SmplstSQLite3.Exception.Internal ( sqliteThrow, sqliteThrowBindError, SQLiteException(..), SQLITE_ERROR(..), SQLITE_INTERNAL(..), SQLITE_PERM(..), SQLITE_ABORT(..), SQLITE_ABORT_PLAIN(..), SQLITE_ABORT_ROLLBACK(..), SQLITE_BUSY(..), SQLITE_BUSY_PLAIN(..), SQLITE_BUSY_RECOVERY(..), SQLITE_BUSY_SNAPSHOT(..), SQLITE_LOCKED(..), SQLITE_LOCKED_PLAIN(..), SQLITE_LOCKED_SHAREDCACHE(..), SQLITE_NOMEM(..), SQLITE_READONLY(..), SQLITE_READONLY_PLAIN(..), SQLITE_READONLY_RECOVERY(..), SQLITE_READONLY_CANTLOCK(..), SQLITE_READONLY_ROLLBACK(..), SQLITE_READONLY_DBMOVED(..), SQLITE_INTERRUPT(..), SQLITE_IOERR(..), SQLITE_IOERR_PLAIN(..), SQLITE_IOERR_READ(..), SQLITE_IOERR_SHORT_READ(..), SQLITE_IOERR_WRITE(..), SQLITE_IOERR_FSYNC(..), SQLITE_IOERR_DIR_FSYNC(..), SQLITE_IOERR_TRUNCATE(..), SQLITE_IOERR_FSTAT(..), SQLITE_IOERR_UNLOCK(..), SQLITE_IOERR_RDLOCK(..), SQLITE_IOERR_DELETE(..), SQLITE_IOERR_BLOCKED(..), SQLITE_IOERR_NOMEM(..), SQLITE_IOERR_ACCESS(..), SQLITE_IOERR_CHECKRESERVEDLOCK(..), SQLITE_IOERR_LOCK(..), SQLITE_IOERR_CLOSE(..), SQLITE_IOERR_DIR_CLOSE(..), SQLITE_IOERR_SHMOPEN(..), SQLITE_IOERR_SHMSIZE(..), SQLITE_IOERR_SHMLOCK(..), SQLITE_IOERR_SHMMAP(..), SQLITE_IOERR_SEEK(..), SQLITE_IOERR_DELETE_NOENT(..), SQLITE_IOERR_MMAP(..), SQLITE_IOERR_GETTEMPPATH(..), SQLITE_IOERR_CONVPATH(..), SQLITE_CORRUPT(..), SQLITE_CORRUPT_PLAIN(..), SQLITE_CORRUPT_VTAB(..), SQLITE_NOTFOUND(..), SQLITE_FULL(..), SQLITE_CANTOPEN(..), SQLITE_CANTOPEN_PLAIN(..), SQLITE_CANTOPEN_NOTEMPDIR(..), SQLITE_CANTOPEN_ISDIR(..), SQLITE_CANTOPEN_FULLPATH(..), SQLITE_CANTOPEN_CONVPATH(..), SQLITE_PROTOCOL(..), SQLITE_EMPTY(..), SQLITE_SCHEMA(..), SQLITE_TOOBIG(..), SQLITE_CONSTRAINT(..), SQLITE_CONSTRAINT_PLAIN(..), SQLITE_CONSTRAINT_CHECK(..), SQLITE_CONSTRAINT_COMMITHOOK(..), SQLITE_CONSTRAINT_FOREIGNKEY(..), SQLITE_CONSTRAINT_FUNCTION(..), SQLITE_CONSTRAINT_NOTNULL(..), SQLITE_CONSTRAINT_PRIMARYKEY(..), SQLITE_CONSTRAINT_TRIGGER(..), SQLITE_CONSTRAINT_UNIQUE(..), SQLITE_CONSTRAINT_VTAB(..), SQLITE_CONSTRAINT_ROWID(..), SQLITE_MISMATCH(..), SQLITE_MISUSE(..), SQLITE_NOLFS(..), SQLITE_AUTH(..), SQLITE_AUTH_PLAIN(..), SQLITE_AUTH_USER(..), SQLITE_FORMAT(..), SQLITE_RANGE(..), SQLITE_NOTADB(..), SQLITE_NOTICE(..), SQLITE_NOTICE_PLAIN(..), SQLITE_NOTICE_RECOVER_WAL(..), SQLITE_NOTICE_RECOVER_ROLLBACK(..), SQLITE_WARNING(..), SQLITE_WARNING_PLAIN(..), SQLITE_WARNING_AUTOINDEX(..), SQLITE_BIND_ERROR(..), SQLITE_ERROR_OTHER(..), NullPointerException(..), nullPointerException ) where import Control.Exception import Control.Exception.Hierarchy import Data.Typeable import Foreign.C.Types import Database.SmplstSQLite3.Constants import Database.SmplstSQLite3.Templates mapM newException [ "SQLITE_ERROR", "SQLITE_INTERNAL", "SQLITE_PERM", "SQLITE_ABORT_PLAIN", "SQLITE_ABORT_ROLLBACK", "SQLITE_BUSY_PLAIN", "SQLITE_BUSY_RECOVERY", "SQLITE_BUSY_SNAPSHOT", "SQLITE_LOCKED_PLAIN", "SQLITE_LOCKED_SHAREDCACHE", "SQLITE_NOMEM", "SQLITE_READONLY_PLAIN", "SQLITE_READONLY_RECOVERY", "SQLITE_READONLY_CANTLOCK", "SQLITE_READONLY_ROLLBACK", "SQLITE_READONLY_DBMOVED", "SQLITE_INTERRUPT", "SQLITE_IOERR_PLAIN", "SQLITE_IOERR_READ", "SQLITE_IOERR_SHORT_READ", "SQLITE_IOERR_WRITE", "SQLITE_IOERR_FSYNC", "SQLITE_IOERR_DIR_FSYNC", "SQLITE_IOERR_TRUNCATE", "SQLITE_IOERR_FSTAT", "SQLITE_IOERR_UNLOCK", "SQLITE_IOERR_RDLOCK", "SQLITE_IOERR_DELETE", "SQLITE_IOERR_BLOCKED", "SQLITE_IOERR_NOMEM", "SQLITE_IOERR_ACCESS", "SQLITE_IOERR_CHECKRESERVEDLOCK", "SQLITE_IOERR_LOCK", "SQLITE_IOERR_CLOSE", "SQLITE_IOERR_DIR_CLOSE", "SQLITE_IOERR_SHMOPEN", "SQLITE_IOERR_SHMSIZE", "SQLITE_IOERR_SHMLOCK", "SQLITE_IOERR_SHMMAP", "SQLITE_IOERR_SEEK", "SQLITE_IOERR_DELETE_NOENT", "SQLITE_IOERR_MMAP", "SQLITE_IOERR_GETTEMPPATH", "SQLITE_IOERR_CONVPATH", "SQLITE_CORRUPT_PLAIN", "SQLITE_CORRUPT_VTAB", "SQLITE_NOTFOUND", "SQLITE_FULL", "SQLITE_CANTOPEN_PLAIN", "SQLITE_CANTOPEN_NOTEMPDIR", "SQLITE_CANTOPEN_ISDIR", "SQLITE_CANTOPEN_FULLPATH", "SQLITE_CANTOPEN_CONVPATH", "SQLITE_PROTOCOL", "SQLITE_EMPTY", "SQLITE_SCHEMA", "SQLITE_TOOBIG", "SQLITE_CONSTRAINT_PLAIN", "SQLITE_CONSTRAINT_CHECK", "SQLITE_CONSTRAINT_COMMITHOOK", "SQLITE_CONSTRAINT_FOREIGNKEY", "SQLITE_CONSTRAINT_FUNCTION", "SQLITE_CONSTRAINT_NOTNULL", "SQLITE_CONSTRAINT_PRIMARYKEY", "SQLITE_CONSTRAINT_TRIGGER", "SQLITE_CONSTRAINT_UNIQUE", "SQLITE_CONSTRAINT_VTAB", "SQLITE_CONSTRAINT_ROWID", "SQLITE_MISMATCH", "SQLITE_MISUSE", "SQLITE_NOLFS", "SQLITE_AUTH_PLAIN", "SQLITE_AUTH_USER", "SQLITE_FORMAT", "SQLITE_RANGE", "SQLITE_NOTADB", "SQLITE_NOTICE_PLAIN", "SQLITE_NOTICE_RECOVER_WAL", "SQLITE_NOTICE_RECOVER_ROLLBACK", "SQLITE_WARNING_PLAIN", "SQLITE_WARNING_AUTOINDEX", "SQLITE_BIND_ERROR" ] data SQLITE_ERROR_OTHER = SQLITE_ERROR_OTHER CInt String deriving (Typeable, Show) exceptionHierarchy Nothing $ ExNode "SQLiteException" [ ExType ''SQLITE_ERROR, ExType ''SQLITE_INTERNAL, ExType ''SQLITE_PERM, ExNode "SQLITE_ABORT" [ ExType ''SQLITE_ABORT_PLAIN, ExType ''SQLITE_ABORT_ROLLBACK ], ExNode "SQLITE_BUSY" [ ExType ''SQLITE_BUSY_PLAIN, ExType ''SQLITE_BUSY_RECOVERY, ExType ''SQLITE_BUSY_SNAPSHOT ], ExNode "SQLITE_LOCKED" [ ExType ''SQLITE_LOCKED_PLAIN, ExType ''SQLITE_LOCKED_SHAREDCACHE ], ExType ''SQLITE_NOMEM, ExNode "SQLITE_READONLY" [ ExType ''SQLITE_READONLY_PLAIN, ExType ''SQLITE_READONLY_RECOVERY, ExType ''SQLITE_READONLY_CANTLOCK, ExType ''SQLITE_READONLY_ROLLBACK, ExType ''SQLITE_READONLY_DBMOVED ], ExType ''SQLITE_INTERRUPT, ExNode "SQLITE_IOERR" [ ExType ''SQLITE_IOERR_PLAIN, ExType ''SQLITE_IOERR_READ, ExType ''SQLITE_IOERR_SHORT_READ, ExType ''SQLITE_IOERR_WRITE, ExType ''SQLITE_IOERR_FSYNC, ExType ''SQLITE_IOERR_DIR_FSYNC, ExType ''SQLITE_IOERR_TRUNCATE, ExType ''SQLITE_IOERR_FSTAT, ExType ''SQLITE_IOERR_UNLOCK, ExType ''SQLITE_IOERR_RDLOCK, ExType ''SQLITE_IOERR_DELETE, ExType ''SQLITE_IOERR_BLOCKED, ExType ''SQLITE_IOERR_NOMEM, ExType ''SQLITE_IOERR_ACCESS, ExType ''SQLITE_IOERR_CHECKRESERVEDLOCK, ExType ''SQLITE_IOERR_LOCK, ExType ''SQLITE_IOERR_CLOSE, ExType ''SQLITE_IOERR_DIR_CLOSE, ExType ''SQLITE_IOERR_SHMOPEN, ExType ''SQLITE_IOERR_SHMSIZE, ExType ''SQLITE_IOERR_SHMLOCK, ExType ''SQLITE_IOERR_SHMMAP, ExType ''SQLITE_IOERR_SEEK, ExType ''SQLITE_IOERR_DELETE_NOENT, ExType ''SQLITE_IOERR_MMAP, ExType ''SQLITE_IOERR_GETTEMPPATH, ExType ''SQLITE_IOERR_CONVPATH ], ExNode "SQLITE_CORRUPT" [ ExType ''SQLITE_CORRUPT_PLAIN, ExType ''SQLITE_CORRUPT_VTAB ], ExType ''SQLITE_NOTFOUND, ExType ''SQLITE_FULL, ExNode "SQLITE_CANTOPEN" [ ExType ''SQLITE_CANTOPEN_PLAIN, ExType ''SQLITE_CANTOPEN_NOTEMPDIR, ExType ''SQLITE_CANTOPEN_ISDIR, ExType ''SQLITE_CANTOPEN_FULLPATH, ExType ''SQLITE_CANTOPEN_CONVPATH ], ExType ''SQLITE_PROTOCOL, ExType ''SQLITE_EMPTY, ExType ''SQLITE_SCHEMA, ExType ''SQLITE_TOOBIG, ExNode "SQLITE_CONSTRAINT" [ ExType ''SQLITE_CONSTRAINT_PLAIN, ExType ''SQLITE_CONSTRAINT_CHECK, ExType ''SQLITE_CONSTRAINT_COMMITHOOK, ExType ''SQLITE_CONSTRAINT_FOREIGNKEY, ExType ''SQLITE_CONSTRAINT_FUNCTION, ExType ''SQLITE_CONSTRAINT_NOTNULL, ExType ''SQLITE_CONSTRAINT_PRIMARYKEY, ExType ''SQLITE_CONSTRAINT_TRIGGER, ExType ''SQLITE_CONSTRAINT_UNIQUE, ExType ''SQLITE_CONSTRAINT_VTAB, ExType ''SQLITE_CONSTRAINT_ROWID ], ExType ''SQLITE_MISMATCH, ExType ''SQLITE_MISUSE, ExType ''SQLITE_NOLFS, ExNode "SQLITE_AUTH" [ ExType ''SQLITE_AUTH_PLAIN, ExType ''SQLITE_AUTH_USER ], ExType ''SQLITE_FORMAT, ExType ''SQLITE_RANGE, ExType ''SQLITE_NOTADB, ExNode "SQLITE_NOTICE" [ ExType ''SQLITE_NOTICE_PLAIN, ExType ''SQLITE_NOTICE_RECOVER_WAL, ExType ''SQLITE_NOTICE_RECOVER_ROLLBACK ], ExNode "SQLITE_WARNING" [ ExType ''SQLITE_WARNING_PLAIN, ExType ''SQLITE_WARNING_AUTOINDEX ], ExType ''SQLITE_BIND_ERROR, ExType ''SQLITE_ERROR_OTHER ] mkSqliteThrow [ 'SQLITE_ERROR, 'SQLITE_INTERNAL, 'SQLITE_PERM, 'SQLITE_ABORT_PLAIN, 'SQLITE_ABORT_ROLLBACK, 'SQLITE_BUSY_PLAIN, 'SQLITE_BUSY_RECOVERY, 'SQLITE_BUSY_SNAPSHOT, 'SQLITE_LOCKED_PLAIN, 'SQLITE_LOCKED_SHAREDCACHE, 'SQLITE_NOMEM, 'SQLITE_READONLY_PLAIN, 'SQLITE_READONLY_RECOVERY, 'SQLITE_READONLY_CANTLOCK, 'SQLITE_READONLY_ROLLBACK, 'SQLITE_READONLY_DBMOVED, 'SQLITE_INTERRUPT, 'SQLITE_IOERR_PLAIN, 'SQLITE_IOERR_READ, 'SQLITE_IOERR_SHORT_READ, 'SQLITE_IOERR_WRITE, 'SQLITE_IOERR_FSYNC, 'SQLITE_IOERR_DIR_FSYNC, 'SQLITE_IOERR_TRUNCATE, 'SQLITE_IOERR_FSTAT, 'SQLITE_IOERR_UNLOCK, 'SQLITE_IOERR_RDLOCK, 'SQLITE_IOERR_DELETE, 'SQLITE_IOERR_BLOCKED, 'SQLITE_IOERR_NOMEM, 'SQLITE_IOERR_ACCESS, 'SQLITE_IOERR_CHECKRESERVEDLOCK, 'SQLITE_IOERR_LOCK, 'SQLITE_IOERR_CLOSE, 'SQLITE_IOERR_DIR_CLOSE, 'SQLITE_IOERR_SHMOPEN, 'SQLITE_IOERR_SHMSIZE, 'SQLITE_IOERR_SHMLOCK, 'SQLITE_IOERR_SHMMAP, 'SQLITE_IOERR_SEEK, 'SQLITE_IOERR_DELETE_NOENT, 'SQLITE_IOERR_MMAP, 'SQLITE_IOERR_GETTEMPPATH, 'SQLITE_IOERR_CONVPATH, 'SQLITE_CORRUPT_PLAIN, 'SQLITE_CORRUPT_VTAB, 'SQLITE_NOTFOUND, 'SQLITE_FULL, 'SQLITE_CANTOPEN_PLAIN, 'SQLITE_CANTOPEN_NOTEMPDIR, 'SQLITE_CANTOPEN_ISDIR, 'SQLITE_CANTOPEN_FULLPATH, 'SQLITE_CANTOPEN_CONVPATH, 'SQLITE_PROTOCOL, 'SQLITE_EMPTY, 'SQLITE_SCHEMA, 'SQLITE_TOOBIG, 'SQLITE_CONSTRAINT_PLAIN, 'SQLITE_CONSTRAINT_CHECK, 'SQLITE_CONSTRAINT_COMMITHOOK, 'SQLITE_CONSTRAINT_FOREIGNKEY, 'SQLITE_CONSTRAINT_FUNCTION, 'SQLITE_CONSTRAINT_NOTNULL, 'SQLITE_CONSTRAINT_PRIMARYKEY, 'SQLITE_CONSTRAINT_TRIGGER, 'SQLITE_CONSTRAINT_UNIQUE, 'SQLITE_CONSTRAINT_VTAB, 'SQLITE_CONSTRAINT_ROWID, 'SQLITE_MISMATCH, 'SQLITE_MISUSE, 'SQLITE_NOLFS, 'SQLITE_AUTH_PLAIN, 'SQLITE_AUTH_USER, 'SQLITE_FORMAT, 'SQLITE_RANGE, 'SQLITE_NOTADB, 'SQLITE_NOTICE_PLAIN, 'SQLITE_NOTICE_RECOVER_WAL, 'SQLITE_NOTICE_RECOVER_ROLLBACK, 'SQLITE_WARNING_PLAIN, 'SQLITE_WARNING_AUTOINDEX ] sqliteThrowBindError :: String -> IO a sqliteThrowBindError em = throw $ SQLITE_BIND_ERROR em newtype NullPointerException = NullPointerException String deriving (Typeable, Show) exceptionHierarchy Nothing (ExType ''NullPointerException) nullPointerException :: String -> IO a nullPointerException em = throwIO $ NullPointerException em