{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) /No description available in the introspection data./ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Soup.Objects.Requester ( -- * Exported types Requester(..) , IsRequester , toRequester , noRequester , -- * Methods -- ** new #method:new# requesterNew , -- ** request #method:request# #if ENABLE_OVERLOADING RequesterRequestMethodInfo , #endif requesterRequest , -- ** requestUri #method:requestUri# #if ENABLE_OVERLOADING RequesterRequestUriMethodInfo , #endif requesterRequestUri , ) 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.Soup.Interfaces.SessionFeature as Soup.SessionFeature import {-# SOURCE #-} qualified GI.Soup.Objects.Request as Soup.Request import {-# SOURCE #-} qualified GI.Soup.Structs.URI as Soup.URI -- | Memory-managed wrapper type. newtype Requester = Requester (ManagedPtr Requester) foreign import ccall "soup_requester_get_type" c_soup_requester_get_type :: IO GType instance GObject Requester where gobjectType = c_soup_requester_get_type -- | Type class for types which can be safely cast to `Requester`, for instance with `toRequester`. class (GObject o, O.IsDescendantOf Requester o) => IsRequester o instance (GObject o, O.IsDescendantOf Requester o) => IsRequester o instance O.HasParentTypes Requester type instance O.ParentTypes Requester = '[GObject.Object.Object, Soup.SessionFeature.SessionFeature] -- | Cast to `Requester`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toRequester :: (MonadIO m, IsRequester o) => o -> m Requester toRequester = liftIO . unsafeCastTo Requester -- | A convenience alias for `Nothing` :: `Maybe` `Requester`. noRequester :: Maybe Requester noRequester = Nothing #if ENABLE_OVERLOADING type family ResolveRequesterMethod (t :: Symbol) (o :: *) :: * where ResolveRequesterMethod "addFeature" o = Soup.SessionFeature.SessionFeatureAddFeatureMethodInfo ResolveRequesterMethod "attach" o = Soup.SessionFeature.SessionFeatureAttachMethodInfo ResolveRequesterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveRequesterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveRequesterMethod "detach" o = Soup.SessionFeature.SessionFeatureDetachMethodInfo ResolveRequesterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveRequesterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveRequesterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveRequesterMethod "hasFeature" o = Soup.SessionFeature.SessionFeatureHasFeatureMethodInfo ResolveRequesterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveRequesterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveRequesterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveRequesterMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveRequesterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveRequesterMethod "removeFeature" o = Soup.SessionFeature.SessionFeatureRemoveFeatureMethodInfo ResolveRequesterMethod "request" o = RequesterRequestMethodInfo ResolveRequesterMethod "requestUri" o = RequesterRequestUriMethodInfo ResolveRequesterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveRequesterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveRequesterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveRequesterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveRequesterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveRequesterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveRequesterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveRequesterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveRequesterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveRequesterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveRequesterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveRequesterMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveRequesterMethod t Requester, O.MethodInfo info Requester p) => OL.IsLabel t (Requester -> 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 Requester type instance O.AttributeList Requester = RequesterAttributeList type RequesterAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList Requester = RequesterSignalList type RequesterSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method Requester::new -- method type : Constructor -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Soup", name = "Requester"})) -- throws : False -- Skip return : False foreign import ccall "soup_requester_new" soup_requester_new :: IO (Ptr Requester) {- | /No description available in the introspection data./ -} requesterNew :: (B.CallStack.HasCallStack, MonadIO m) => m Requester requesterNew = liftIO $ do result <- soup_requester_new checkUnexpectedReturnNULL "requesterNew" result result' <- (wrapObject Requester) result return result' #if ENABLE_OVERLOADING #endif -- method Requester::request -- method type : OrdinaryMethod -- Args : [Arg {argCName = "requester", argType = TInterface (Name {namespace = "Soup", name = "Requester"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Soup", name = "Request"})) -- throws : True -- Skip return : False foreign import ccall "soup_requester_request" soup_requester_request :: Ptr Requester -> -- requester : TInterface (Name {namespace = "Soup", name = "Requester"}) CString -> -- uri_string : TBasicType TUTF8 Ptr (Ptr GError) -> -- error IO (Ptr Soup.Request.Request) {- | /No description available in the introspection data./ -} requesterRequest :: (B.CallStack.HasCallStack, MonadIO m, IsRequester a) => a -> T.Text -> m Soup.Request.Request {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -} requesterRequest requester uriString = liftIO $ do requester' <- unsafeManagedPtrCastPtr requester uriString' <- textToCString uriString onException (do result <- propagateGError $ soup_requester_request requester' uriString' checkUnexpectedReturnNULL "requesterRequest" result result' <- (wrapObject Soup.Request.Request) result touchManagedPtr requester freeMem uriString' return result' ) (do freeMem uriString' ) #if ENABLE_OVERLOADING data RequesterRequestMethodInfo instance (signature ~ (T.Text -> m Soup.Request.Request), MonadIO m, IsRequester a) => O.MethodInfo RequesterRequestMethodInfo a signature where overloadedMethod _ = requesterRequest #endif -- method Requester::request_uri -- method type : OrdinaryMethod -- Args : [Arg {argCName = "requester", argType = TInterface (Name {namespace = "Soup", name = "Requester"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface (Name {namespace = "Soup", name = "URI"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Soup", name = "Request"})) -- throws : True -- Skip return : False foreign import ccall "soup_requester_request_uri" soup_requester_request_uri :: Ptr Requester -> -- requester : TInterface (Name {namespace = "Soup", name = "Requester"}) Ptr Soup.URI.URI -> -- uri : TInterface (Name {namespace = "Soup", name = "URI"}) Ptr (Ptr GError) -> -- error IO (Ptr Soup.Request.Request) {- | /No description available in the introspection data./ -} requesterRequestUri :: (B.CallStack.HasCallStack, MonadIO m, IsRequester a) => a -> Soup.URI.URI -> m Soup.Request.Request {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -} requesterRequestUri requester uri = liftIO $ do requester' <- unsafeManagedPtrCastPtr requester uri' <- unsafeManagedPtrGetPtr uri onException (do result <- propagateGError $ soup_requester_request_uri requester' uri' checkUnexpectedReturnNULL "requesterRequestUri" result result' <- (wrapObject Soup.Request.Request) result touchManagedPtr requester touchManagedPtr uri return result' ) (do return () ) #if ENABLE_OVERLOADING data RequesterRequestUriMethodInfo instance (signature ~ (Soup.URI.URI -> m Soup.Request.Request), MonadIO m, IsRequester a) => O.MethodInfo RequesterRequestUriMethodInfo a signature where overloadedMethod _ = requesterRequestUri #endif