{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2WebExtension.Objects.DOMBlob
(
DOMBlob(..) ,
IsDOMBlob ,
toDOMBlob ,
#if defined(ENABLE_OVERLOADING)
ResolveDOMBlobMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
DOMBlobGetSizeMethodInfo ,
#endif
dOMBlobGetSize ,
#if defined(ENABLE_OVERLOADING)
DOMBlobSizePropertyInfo ,
#endif
#if defined(ENABLE_OVERLOADING)
dOMBlobSize ,
#endif
getDOMBlobSize ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject
newtype DOMBlob = DOMBlob (SP.ManagedPtr DOMBlob)
deriving (DOMBlob -> DOMBlob -> Bool
(DOMBlob -> DOMBlob -> Bool)
-> (DOMBlob -> DOMBlob -> Bool) -> Eq DOMBlob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DOMBlob -> DOMBlob -> Bool
== :: DOMBlob -> DOMBlob -> Bool
$c/= :: DOMBlob -> DOMBlob -> Bool
/= :: DOMBlob -> DOMBlob -> Bool
Eq)
instance SP.ManagedPtrNewtype DOMBlob where
toManagedPtr :: DOMBlob -> ManagedPtr DOMBlob
toManagedPtr (DOMBlob ManagedPtr DOMBlob
p) = ManagedPtr DOMBlob
p
foreign import ccall "webkit_dom_blob_get_type"
c_webkit_dom_blob_get_type :: IO B.Types.GType
instance B.Types.TypedObject DOMBlob where
glibType :: IO GType
glibType = IO GType
c_webkit_dom_blob_get_type
instance B.Types.GObject DOMBlob
class (SP.GObject o, O.IsDescendantOf DOMBlob o) => IsDOMBlob o
instance (SP.GObject o, O.IsDescendantOf DOMBlob o) => IsDOMBlob o
instance O.HasParentTypes DOMBlob
type instance O.ParentTypes DOMBlob = '[WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object]
toDOMBlob :: (MIO.MonadIO m, IsDOMBlob o) => o -> m DOMBlob
toDOMBlob :: forall (m :: * -> *) o. (MonadIO m, IsDOMBlob o) => o -> m DOMBlob
toDOMBlob = IO DOMBlob -> m DOMBlob
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DOMBlob -> m DOMBlob) -> (o -> IO DOMBlob) -> o -> m DOMBlob
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DOMBlob -> DOMBlob) -> o -> IO DOMBlob
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DOMBlob -> DOMBlob
DOMBlob
instance B.GValue.IsGValue (Maybe DOMBlob) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_dom_blob_get_type
gvalueSet_ :: Ptr GValue -> Maybe DOMBlob -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DOMBlob
P.Nothing = Ptr GValue -> Ptr DOMBlob -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DOMBlob
forall a. Ptr a
FP.nullPtr :: FP.Ptr DOMBlob)
gvalueSet_ Ptr GValue
gv (P.Just DOMBlob
obj) = DOMBlob -> (Ptr DOMBlob -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMBlob
obj (Ptr GValue -> Ptr DOMBlob -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe DOMBlob)
gvalueGet_ Ptr GValue
gv = do
Ptr DOMBlob
ptr <- Ptr GValue -> IO (Ptr DOMBlob)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DOMBlob)
if Ptr DOMBlob
ptr Ptr DOMBlob -> Ptr DOMBlob -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DOMBlob
forall a. Ptr a
FP.nullPtr
then DOMBlob -> Maybe DOMBlob
forall a. a -> Maybe a
P.Just (DOMBlob -> Maybe DOMBlob) -> IO DOMBlob -> IO (Maybe DOMBlob)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DOMBlob -> DOMBlob) -> Ptr DOMBlob -> IO DOMBlob
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DOMBlob -> DOMBlob
DOMBlob Ptr DOMBlob
ptr
else Maybe DOMBlob -> IO (Maybe DOMBlob)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMBlob
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveDOMBlobMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveDOMBlobMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDOMBlobMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDOMBlobMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDOMBlobMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDOMBlobMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDOMBlobMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDOMBlobMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDOMBlobMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDOMBlobMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveDOMBlobMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDOMBlobMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDOMBlobMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDOMBlobMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDOMBlobMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDOMBlobMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveDOMBlobMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDOMBlobMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDOMBlobMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDOMBlobMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDOMBlobMethod "getSize" o = DOMBlobGetSizeMethodInfo
ResolveDOMBlobMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDOMBlobMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveDOMBlobMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDOMBlobMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDOMBlobMethod t DOMBlob, O.OverloadedMethod info DOMBlob p) => OL.IsLabel t (DOMBlob -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDOMBlobMethod t DOMBlob, O.OverloadedMethod info DOMBlob p, R.HasField t DOMBlob p) => R.HasField t DOMBlob p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDOMBlobMethod t DOMBlob, O.OverloadedMethodInfo info DOMBlob) => OL.IsLabel t (O.MethodProxy info DOMBlob) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getDOMBlobSize :: (MonadIO m, IsDOMBlob o) => o -> m Word64
getDOMBlobSize :: forall (m :: * -> *) o. (MonadIO m, IsDOMBlob o) => o -> m Word64
getDOMBlobSize o
obj = IO Word64 -> m Word64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word64
forall a. GObject a => a -> String -> IO Word64
B.Properties.getObjectPropertyUInt64 o
obj String
"size"
#if defined(ENABLE_OVERLOADING)
data DOMBlobSizePropertyInfo
instance AttrInfo DOMBlobSizePropertyInfo where
type AttrAllowedOps DOMBlobSizePropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint DOMBlobSizePropertyInfo = IsDOMBlob
type AttrSetTypeConstraint DOMBlobSizePropertyInfo = (~) ()
type AttrTransferTypeConstraint DOMBlobSizePropertyInfo = (~) ()
type AttrTransferType DOMBlobSizePropertyInfo = ()
type AttrGetType DOMBlobSizePropertyInfo = Word64
type AttrLabel DOMBlobSizePropertyInfo = "size"
type AttrOrigin DOMBlobSizePropertyInfo = DOMBlob
attrGet = getDOMBlobSize
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMBlob.size"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Objects-DOMBlob.html#g:attr:size"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DOMBlob
type instance O.AttributeList DOMBlob = DOMBlobAttributeList
type DOMBlobAttributeList = ('[ '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("size", DOMBlobSizePropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
dOMBlobSize :: AttrLabelProxy "size"
dOMBlobSize = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DOMBlob = DOMBlobSignalList
type DOMBlobSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "webkit_dom_blob_get_size" webkit_dom_blob_get_size ::
Ptr DOMBlob ->
IO Word64
{-# DEPRECATED dOMBlobGetSize ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
dOMBlobGetSize ::
(B.CallStack.HasCallStack, MonadIO m, IsDOMBlob a) =>
a
-> m Word64
dOMBlobGetSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMBlob a) =>
a -> m Word64
dOMBlobGetSize a
self = IO Word64 -> m Word64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr DOMBlob
self' <- a -> IO (Ptr DOMBlob)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Word64
result <- Ptr DOMBlob -> IO Word64
webkit_dom_blob_get_size Ptr DOMBlob
self'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
Word64 -> IO Word64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data DOMBlobGetSizeMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsDOMBlob a) => O.OverloadedMethod DOMBlobGetSizeMethodInfo a signature where
overloadedMethod = dOMBlobGetSize
instance O.OverloadedMethodInfo DOMBlobGetSizeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMBlob.dOMBlobGetSize",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Objects-DOMBlob.html#v:dOMBlobGetSize"
})
#endif