#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.JavaScriptCore.Objects.Exception
(
Exception(..) ,
IsException ,
toException ,
noException ,
#if ENABLE_OVERLOADING
ExceptionGetBacktraceStringMethodInfo ,
#endif
exceptionGetBacktraceString ,
#if ENABLE_OVERLOADING
ExceptionGetColumnNumberMethodInfo ,
#endif
exceptionGetColumnNumber ,
#if ENABLE_OVERLOADING
ExceptionGetLineNumberMethodInfo ,
#endif
exceptionGetLineNumber ,
#if ENABLE_OVERLOADING
ExceptionGetMessageMethodInfo ,
#endif
exceptionGetMessage ,
#if ENABLE_OVERLOADING
ExceptionGetNameMethodInfo ,
#endif
exceptionGetName ,
#if ENABLE_OVERLOADING
ExceptionGetSourceUriMethodInfo ,
#endif
exceptionGetSourceUri ,
exceptionNew ,
exceptionNewWithName ,
#if ENABLE_OVERLOADING
ExceptionReportMethodInfo ,
#endif
exceptionReport ,
#if ENABLE_OVERLOADING
ExceptionToStringMethodInfo ,
#endif
exceptionToString ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.JavaScriptCore.Objects.Context as JavaScriptCore.Context
newtype Exception = Exception (ManagedPtr Exception)
foreign import ccall "jsc_exception_get_type"
c_jsc_exception_get_type :: IO GType
instance GObject Exception where
gobjectType = c_jsc_exception_get_type
class (GObject o, O.IsDescendantOf Exception o) => IsException o
instance (GObject o, O.IsDescendantOf Exception o) => IsException o
instance O.HasParentTypes Exception
type instance O.ParentTypes Exception = '[GObject.Object.Object]
toException :: (MonadIO m, IsException o) => o -> m Exception
toException = liftIO . unsafeCastTo Exception
noException :: Maybe Exception
noException = Nothing
#if ENABLE_OVERLOADING
type family ResolveExceptionMethod (t :: Symbol) (o :: *) :: * where
ResolveExceptionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveExceptionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveExceptionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveExceptionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveExceptionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveExceptionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveExceptionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveExceptionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveExceptionMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveExceptionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveExceptionMethod "report" o = ExceptionReportMethodInfo
ResolveExceptionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveExceptionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveExceptionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveExceptionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveExceptionMethod "toString" o = ExceptionToStringMethodInfo
ResolveExceptionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveExceptionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveExceptionMethod "getBacktraceString" o = ExceptionGetBacktraceStringMethodInfo
ResolveExceptionMethod "getColumnNumber" o = ExceptionGetColumnNumberMethodInfo
ResolveExceptionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveExceptionMethod "getLineNumber" o = ExceptionGetLineNumberMethodInfo
ResolveExceptionMethod "getMessage" o = ExceptionGetMessageMethodInfo
ResolveExceptionMethod "getName" o = ExceptionGetNameMethodInfo
ResolveExceptionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveExceptionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveExceptionMethod "getSourceUri" o = ExceptionGetSourceUriMethodInfo
ResolveExceptionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveExceptionMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveExceptionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveExceptionMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveExceptionMethod t Exception, O.MethodInfo info Exception p) => OL.IsLabel t (Exception -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Exception
type instance O.AttributeList Exception = ExceptionAttributeList
type ExceptionAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList Exception = ExceptionSignalList
type ExceptionSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "jsc_exception_new" jsc_exception_new ::
Ptr JavaScriptCore.Context.Context ->
CString ->
IO (Ptr Exception)
exceptionNew ::
(B.CallStack.HasCallStack, MonadIO m, JavaScriptCore.Context.IsContext a) =>
a
-> T.Text
-> m Exception
exceptionNew context message = liftIO $ do
context' <- unsafeManagedPtrCastPtr context
message' <- textToCString message
result <- jsc_exception_new context' message'
checkUnexpectedReturnNULL "exceptionNew" result
result' <- (wrapObject Exception) result
touchManagedPtr context
freeMem message'
return result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "jsc_exception_new_with_name" jsc_exception_new_with_name ::
Ptr JavaScriptCore.Context.Context ->
CString ->
CString ->
IO (Ptr Exception)
exceptionNewWithName ::
(B.CallStack.HasCallStack, MonadIO m, JavaScriptCore.Context.IsContext a) =>
a
-> T.Text
-> T.Text
-> m Exception
exceptionNewWithName context name message = liftIO $ do
context' <- unsafeManagedPtrCastPtr context
name' <- textToCString name
message' <- textToCString message
result <- jsc_exception_new_with_name context' name' message'
checkUnexpectedReturnNULL "exceptionNewWithName" result
result' <- (wrapObject Exception) result
touchManagedPtr context
freeMem name'
freeMem message'
return result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "jsc_exception_get_backtrace_string" jsc_exception_get_backtrace_string ::
Ptr Exception ->
IO CString
exceptionGetBacktraceString ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m (Maybe T.Text)
exceptionGetBacktraceString exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_backtrace_string exception'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr exception
return maybeResult
#if ENABLE_OVERLOADING
data ExceptionGetBacktraceStringMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsException a) => O.MethodInfo ExceptionGetBacktraceStringMethodInfo a signature where
overloadedMethod _ = exceptionGetBacktraceString
#endif
foreign import ccall "jsc_exception_get_column_number" jsc_exception_get_column_number ::
Ptr Exception ->
IO Word32
exceptionGetColumnNumber ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m Word32
exceptionGetColumnNumber exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_column_number exception'
touchManagedPtr exception
return result
#if ENABLE_OVERLOADING
data ExceptionGetColumnNumberMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsException a) => O.MethodInfo ExceptionGetColumnNumberMethodInfo a signature where
overloadedMethod _ = exceptionGetColumnNumber
#endif
foreign import ccall "jsc_exception_get_line_number" jsc_exception_get_line_number ::
Ptr Exception ->
IO Word32
exceptionGetLineNumber ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m Word32
exceptionGetLineNumber exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_line_number exception'
touchManagedPtr exception
return result
#if ENABLE_OVERLOADING
data ExceptionGetLineNumberMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsException a) => O.MethodInfo ExceptionGetLineNumberMethodInfo a signature where
overloadedMethod _ = exceptionGetLineNumber
#endif
foreign import ccall "jsc_exception_get_message" jsc_exception_get_message ::
Ptr Exception ->
IO CString
exceptionGetMessage ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m T.Text
exceptionGetMessage exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_message exception'
checkUnexpectedReturnNULL "exceptionGetMessage" result
result' <- cstringToText result
touchManagedPtr exception
return result'
#if ENABLE_OVERLOADING
data ExceptionGetMessageMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsException a) => O.MethodInfo ExceptionGetMessageMethodInfo a signature where
overloadedMethod _ = exceptionGetMessage
#endif
foreign import ccall "jsc_exception_get_name" jsc_exception_get_name ::
Ptr Exception ->
IO CString
exceptionGetName ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m T.Text
exceptionGetName exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_name exception'
checkUnexpectedReturnNULL "exceptionGetName" result
result' <- cstringToText result
touchManagedPtr exception
return result'
#if ENABLE_OVERLOADING
data ExceptionGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsException a) => O.MethodInfo ExceptionGetNameMethodInfo a signature where
overloadedMethod _ = exceptionGetName
#endif
foreign import ccall "jsc_exception_get_source_uri" jsc_exception_get_source_uri ::
Ptr Exception ->
IO CString
exceptionGetSourceUri ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m (Maybe T.Text)
exceptionGetSourceUri exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_get_source_uri exception'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr exception
return maybeResult
#if ENABLE_OVERLOADING
data ExceptionGetSourceUriMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsException a) => O.MethodInfo ExceptionGetSourceUriMethodInfo a signature where
overloadedMethod _ = exceptionGetSourceUri
#endif
foreign import ccall "jsc_exception_report" jsc_exception_report ::
Ptr Exception ->
IO CString
exceptionReport ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m T.Text
exceptionReport exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_report exception'
checkUnexpectedReturnNULL "exceptionReport" result
result' <- cstringToText result
freeMem result
touchManagedPtr exception
return result'
#if ENABLE_OVERLOADING
data ExceptionReportMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsException a) => O.MethodInfo ExceptionReportMethodInfo a signature where
overloadedMethod _ = exceptionReport
#endif
foreign import ccall "jsc_exception_to_string" jsc_exception_to_string ::
Ptr Exception ->
IO CString
exceptionToString ::
(B.CallStack.HasCallStack, MonadIO m, IsException a) =>
a
-> m T.Text
exceptionToString exception = liftIO $ do
exception' <- unsafeManagedPtrCastPtr exception
result <- jsc_exception_to_string exception'
checkUnexpectedReturnNULL "exceptionToString" result
result' <- cstringToText result
freeMem result
touchManagedPtr exception
return result'
#if ENABLE_OVERLOADING
data ExceptionToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsException a) => O.MethodInfo ExceptionToStringMethodInfo a signature where
overloadedMethod _ = exceptionToString
#endif