{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) -} module GI.Soup.Objects.AuthManager ( -- * Exported types AuthManager(..) , AuthManagerK , toAuthManager , noAuthManager , -- * Methods -- ** authManagerUseAuth authManagerUseAuth , -- * Signals -- ** Authenticate AuthManagerAuthenticateCallback , AuthManagerAuthenticateCallbackC , AuthManagerAuthenticateSignalInfo , afterAuthManagerAuthenticate , authManagerAuthenticateCallbackWrapper , authManagerAuthenticateClosure , mkAuthManagerAuthenticateCallback , noAuthManagerAuthenticateCallback , onAuthManagerAuthenticate , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Soup.Types import GI.Soup.Callbacks import qualified GI.GObject as GObject newtype AuthManager = AuthManager (ForeignPtr AuthManager) foreign import ccall "soup_auth_manager_get_type" c_soup_auth_manager_get_type :: IO GType type instance ParentTypes AuthManager = AuthManagerParentTypes type AuthManagerParentTypes = '[GObject.Object, SessionFeature] instance GObject AuthManager where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_soup_auth_manager_get_type class GObject o => AuthManagerK o instance (GObject o, IsDescendantOf AuthManager o) => AuthManagerK o toAuthManager :: AuthManagerK o => o -> IO AuthManager toAuthManager = unsafeCastTo AuthManager noAuthManager :: Maybe AuthManager noAuthManager = Nothing -- signal AuthManager::authenticate type AuthManagerAuthenticateCallback = Message -> Auth -> Bool -> IO () noAuthManagerAuthenticateCallback :: Maybe AuthManagerAuthenticateCallback noAuthManagerAuthenticateCallback = Nothing type AuthManagerAuthenticateCallbackC = Ptr () -> -- object Ptr Message -> Ptr Auth -> CInt -> Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkAuthManagerAuthenticateCallback :: AuthManagerAuthenticateCallbackC -> IO (FunPtr AuthManagerAuthenticateCallbackC) authManagerAuthenticateClosure :: AuthManagerAuthenticateCallback -> IO Closure authManagerAuthenticateClosure cb = newCClosure =<< mkAuthManagerAuthenticateCallback wrapped where wrapped = authManagerAuthenticateCallbackWrapper cb authManagerAuthenticateCallbackWrapper :: AuthManagerAuthenticateCallback -> Ptr () -> Ptr Message -> Ptr Auth -> CInt -> Ptr () -> IO () authManagerAuthenticateCallbackWrapper _cb _ msg auth retrying _ = do msg' <- (newObject Message) msg auth' <- (newObject Auth) auth let retrying' = (/= 0) retrying _cb msg' auth' retrying' onAuthManagerAuthenticate :: (GObject a, MonadIO m) => a -> AuthManagerAuthenticateCallback -> m SignalHandlerId onAuthManagerAuthenticate obj cb = liftIO $ connectAuthManagerAuthenticate obj cb SignalConnectBefore afterAuthManagerAuthenticate :: (GObject a, MonadIO m) => a -> AuthManagerAuthenticateCallback -> m SignalHandlerId afterAuthManagerAuthenticate obj cb = connectAuthManagerAuthenticate obj cb SignalConnectAfter connectAuthManagerAuthenticate :: (GObject a, MonadIO m) => a -> AuthManagerAuthenticateCallback -> SignalConnectMode -> m SignalHandlerId connectAuthManagerAuthenticate obj cb after = liftIO $ do cb' <- mkAuthManagerAuthenticateCallback (authManagerAuthenticateCallbackWrapper cb) connectSignalFunPtr obj "authenticate" cb' after type instance AttributeList AuthManager = AuthManagerAttributeList type AuthManagerAttributeList = ('[ ] :: [(Symbol, *)]) data AuthManagerAuthenticateSignalInfo instance SignalInfo AuthManagerAuthenticateSignalInfo where type HaskellCallbackType AuthManagerAuthenticateSignalInfo = AuthManagerAuthenticateCallback connectSignal _ = connectAuthManagerAuthenticate type instance SignalList AuthManager = AuthManagerSignalList type AuthManagerSignalList = ('[ '("authenticate", AuthManagerAuthenticateSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method AuthManager::use_auth -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "AuthManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "auth", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "AuthManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "auth", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_auth_manager_use_auth" soup_auth_manager_use_auth :: Ptr AuthManager -> -- _obj : TInterface "Soup" "AuthManager" Ptr URI -> -- uri : TInterface "Soup" "URI" Ptr Auth -> -- auth : TInterface "Soup" "Auth" IO () authManagerUseAuth :: (MonadIO m, AuthManagerK a, AuthK b) => a -> -- _obj URI -> -- uri b -> -- auth m () authManagerUseAuth _obj uri auth = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let uri' = unsafeManagedPtrGetPtr uri let auth' = unsafeManagedPtrCastPtr auth soup_auth_manager_use_auth _obj' uri' auth' touchManagedPtr _obj touchManagedPtr uri touchManagedPtr auth return ()