{- | 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.Gio.Objects.Resolver ( -- * Exported types Resolver(..) , ResolverK , toResolver , noResolver , -- * Methods -- ** resolverGetDefault resolverGetDefault , -- ** resolverLookupByAddress resolverLookupByAddress , -- ** resolverLookupByAddressAsync resolverLookupByAddressAsync , -- ** resolverLookupByAddressFinish resolverLookupByAddressFinish , -- ** resolverLookupByName resolverLookupByName , -- ** resolverLookupByNameAsync resolverLookupByNameAsync , -- ** resolverLookupByNameFinish resolverLookupByNameFinish , -- ** resolverLookupRecords resolverLookupRecords , -- ** resolverLookupRecordsAsync resolverLookupRecordsAsync , -- ** resolverLookupRecordsFinish resolverLookupRecordsFinish , -- ** resolverLookupService resolverLookupService , -- ** resolverLookupServiceAsync resolverLookupServiceAsync , -- ** resolverLookupServiceFinish resolverLookupServiceFinish , -- ** resolverSetDefault resolverSetDefault , -- * Signals -- ** Reload ResolverReloadCallback , ResolverReloadCallbackC , ResolverReloadSignalInfo , afterResolverReload , mkResolverReloadCallback , noResolverReloadCallback , onResolverReload , resolverReloadCallbackWrapper , resolverReloadClosure , ) 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.Gio.Types import GI.Gio.Callbacks import qualified GI.GObject as GObject newtype Resolver = Resolver (ForeignPtr Resolver) foreign import ccall "g_resolver_get_type" c_g_resolver_get_type :: IO GType type instance ParentTypes Resolver = ResolverParentTypes type ResolverParentTypes = '[GObject.Object] instance GObject Resolver where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_g_resolver_get_type class GObject o => ResolverK o instance (GObject o, IsDescendantOf Resolver o) => ResolverK o toResolver :: ResolverK o => o -> IO Resolver toResolver = unsafeCastTo Resolver noResolver :: Maybe Resolver noResolver = Nothing -- signal Resolver::reload type ResolverReloadCallback = IO () noResolverReloadCallback :: Maybe ResolverReloadCallback noResolverReloadCallback = Nothing type ResolverReloadCallbackC = Ptr () -> -- object Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkResolverReloadCallback :: ResolverReloadCallbackC -> IO (FunPtr ResolverReloadCallbackC) resolverReloadClosure :: ResolverReloadCallback -> IO Closure resolverReloadClosure cb = newCClosure =<< mkResolverReloadCallback wrapped where wrapped = resolverReloadCallbackWrapper cb resolverReloadCallbackWrapper :: ResolverReloadCallback -> Ptr () -> Ptr () -> IO () resolverReloadCallbackWrapper _cb _ _ = do _cb onResolverReload :: (GObject a, MonadIO m) => a -> ResolverReloadCallback -> m SignalHandlerId onResolverReload obj cb = liftIO $ connectResolverReload obj cb SignalConnectBefore afterResolverReload :: (GObject a, MonadIO m) => a -> ResolverReloadCallback -> m SignalHandlerId afterResolverReload obj cb = connectResolverReload obj cb SignalConnectAfter connectResolverReload :: (GObject a, MonadIO m) => a -> ResolverReloadCallback -> SignalConnectMode -> m SignalHandlerId connectResolverReload obj cb after = liftIO $ do cb' <- mkResolverReloadCallback (resolverReloadCallbackWrapper cb) connectSignalFunPtr obj "reload" cb' after type instance AttributeList Resolver = ResolverAttributeList type ResolverAttributeList = ('[ ] :: [(Symbol, *)]) data ResolverReloadSignalInfo instance SignalInfo ResolverReloadSignalInfo where type HaskellCallbackType ResolverReloadSignalInfo = ResolverReloadCallback connectSignal _ = connectResolverReload type instance SignalList Resolver = ResolverSignalList type ResolverSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("reload", ResolverReloadSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method Resolver::lookup_by_address -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TUTF8 -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_by_address" g_resolver_lookup_by_address :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr InetAddress -> -- address : TInterface "Gio" "InetAddress" Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" Ptr (Ptr GError) -> -- error IO CString resolverLookupByAddress :: (MonadIO m, ResolverK a, InetAddressK b, CancellableK c) => a -> -- _obj b -> -- address Maybe (c) -> -- cancellable m T.Text resolverLookupByAddress _obj address cancellable = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let address' = unsafeManagedPtrCastPtr address maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_resolver_lookup_by_address _obj' address' maybeCancellable checkUnexpectedReturnNULL "g_resolver_lookup_by_address" result result' <- cstringToText result freeMem result touchManagedPtr _obj touchManagedPtr address whenJust cancellable touchManagedPtr return result' ) (do return () ) -- method Resolver::lookup_by_address_async -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_resolver_lookup_by_address_async" g_resolver_lookup_by_address_async :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr InetAddress -> -- address : TInterface "Gio" "InetAddress" Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" FunPtr AsyncReadyCallbackC -> -- callback : TInterface "Gio" "AsyncReadyCallback" Ptr () -> -- user_data : TBasicType TVoid IO () resolverLookupByAddressAsync :: (MonadIO m, ResolverK a, InetAddressK b, CancellableK c) => a -> -- _obj b -> -- address Maybe (c) -> -- cancellable Maybe (AsyncReadyCallback) -> -- callback m () resolverLookupByAddressAsync _obj address cancellable callback = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let address' = unsafeManagedPtrCastPtr address maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' ptrcallback <- callocMem :: IO (Ptr (FunPtr AsyncReadyCallbackC)) maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do jCallback' <- mkAsyncReadyCallback (asyncReadyCallbackWrapper (Just ptrcallback) jCallback) poke ptrcallback jCallback' return jCallback' let user_data = nullPtr g_resolver_lookup_by_address_async _obj' address' maybeCancellable maybeCallback user_data touchManagedPtr _obj touchManagedPtr address whenJust cancellable touchManagedPtr return () -- method Resolver::lookup_by_address_finish -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TUTF8 -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_by_address_finish" g_resolver_lookup_by_address_finish :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr AsyncResult -> -- result : TInterface "Gio" "AsyncResult" Ptr (Ptr GError) -> -- error IO CString resolverLookupByAddressFinish :: (MonadIO m, ResolverK a, AsyncResultK b) => a -> -- _obj b -> -- result m T.Text resolverLookupByAddressFinish _obj result_ = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let result_' = unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_resolver_lookup_by_address_finish _obj' result_' checkUnexpectedReturnNULL "g_resolver_lookup_by_address_finish" result result' <- cstringToText result freeMem result touchManagedPtr _obj touchManagedPtr result_ return result' ) (do return () ) -- method Resolver::lookup_by_name -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList (TInterface "Gio" "InetAddress") -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_by_name" g_resolver_lookup_by_name :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- hostname : TBasicType TUTF8 Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr InetAddress))) resolverLookupByName :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- hostname Maybe (b) -> -- cancellable m [InetAddress] resolverLookupByName _obj hostname cancellable = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj hostname' <- textToCString hostname maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_resolver_lookup_by_name _obj' hostname' maybeCancellable checkUnexpectedReturnNULL "g_resolver_lookup_by_name" result result' <- unpackGList result result'' <- mapM (wrapObject InetAddress) result' g_list_free result touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem hostname' return result'' ) (do freeMem hostname' ) -- method Resolver::lookup_by_name_async -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_resolver_lookup_by_name_async" g_resolver_lookup_by_name_async :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- hostname : TBasicType TUTF8 Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" FunPtr AsyncReadyCallbackC -> -- callback : TInterface "Gio" "AsyncReadyCallback" Ptr () -> -- user_data : TBasicType TVoid IO () resolverLookupByNameAsync :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- hostname Maybe (b) -> -- cancellable Maybe (AsyncReadyCallback) -> -- callback m () resolverLookupByNameAsync _obj hostname cancellable callback = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj hostname' <- textToCString hostname maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' ptrcallback <- callocMem :: IO (Ptr (FunPtr AsyncReadyCallbackC)) maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do jCallback' <- mkAsyncReadyCallback (asyncReadyCallbackWrapper (Just ptrcallback) jCallback) poke ptrcallback jCallback' return jCallback' let user_data = nullPtr g_resolver_lookup_by_name_async _obj' hostname' maybeCancellable maybeCallback user_data touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem hostname' return () -- method Resolver::lookup_by_name_finish -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList (TInterface "Gio" "InetAddress") -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_by_name_finish" g_resolver_lookup_by_name_finish :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr AsyncResult -> -- result : TInterface "Gio" "AsyncResult" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr InetAddress))) resolverLookupByNameFinish :: (MonadIO m, ResolverK a, AsyncResultK b) => a -> -- _obj b -> -- result m [InetAddress] resolverLookupByNameFinish _obj result_ = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let result_' = unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_resolver_lookup_by_name_finish _obj' result_' checkUnexpectedReturnNULL "g_resolver_lookup_by_name_finish" result result' <- unpackGList result result'' <- mapM (wrapObject InetAddress) result' g_list_free result touchManagedPtr _obj touchManagedPtr result_ return result'' ) (do return () ) -- method Resolver::lookup_records -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rrname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "record_type", argType = TInterface "Gio" "ResolverRecordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rrname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "record_type", argType = TInterface "Gio" "ResolverRecordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList TVariant -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_records" g_resolver_lookup_records :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- rrname : TBasicType TUTF8 CUInt -> -- record_type : TInterface "Gio" "ResolverRecordType" Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr GVariant))) resolverLookupRecords :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- rrname ResolverRecordType -> -- record_type Maybe (b) -> -- cancellable m [GVariant] resolverLookupRecords _obj rrname record_type cancellable = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj rrname' <- textToCString rrname let record_type' = (fromIntegral . fromEnum) record_type maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_resolver_lookup_records _obj' rrname' record_type' maybeCancellable checkUnexpectedReturnNULL "g_resolver_lookup_records" result result' <- unpackGList result result'' <- mapM wrapGVariantPtr result' g_list_free result touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem rrname' return result'' ) (do freeMem rrname' ) -- method Resolver::lookup_records_async -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rrname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "record_type", argType = TInterface "Gio" "ResolverRecordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rrname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "record_type", argType = TInterface "Gio" "ResolverRecordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_resolver_lookup_records_async" g_resolver_lookup_records_async :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- rrname : TBasicType TUTF8 CUInt -> -- record_type : TInterface "Gio" "ResolverRecordType" Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" FunPtr AsyncReadyCallbackC -> -- callback : TInterface "Gio" "AsyncReadyCallback" Ptr () -> -- user_data : TBasicType TVoid IO () resolverLookupRecordsAsync :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- rrname ResolverRecordType -> -- record_type Maybe (b) -> -- cancellable Maybe (AsyncReadyCallback) -> -- callback m () resolverLookupRecordsAsync _obj rrname record_type cancellable callback = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj rrname' <- textToCString rrname let record_type' = (fromIntegral . fromEnum) record_type maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' ptrcallback <- callocMem :: IO (Ptr (FunPtr AsyncReadyCallbackC)) maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do jCallback' <- mkAsyncReadyCallback (asyncReadyCallbackWrapper (Just ptrcallback) jCallback) poke ptrcallback jCallback' return jCallback' let user_data = nullPtr g_resolver_lookup_records_async _obj' rrname' record_type' maybeCancellable maybeCallback user_data touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem rrname' return () -- method Resolver::lookup_records_finish -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList TVariant -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_records_finish" g_resolver_lookup_records_finish :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr AsyncResult -> -- result : TInterface "Gio" "AsyncResult" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr GVariant))) resolverLookupRecordsFinish :: (MonadIO m, ResolverK a, AsyncResultK b) => a -> -- _obj b -> -- result m [GVariant] resolverLookupRecordsFinish _obj result_ = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let result_' = unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_resolver_lookup_records_finish _obj' result_' checkUnexpectedReturnNULL "g_resolver_lookup_records_finish" result result' <- unpackGList result result'' <- mapM wrapGVariantPtr result' g_list_free result touchManagedPtr _obj touchManagedPtr result_ return result'' ) (do return () ) -- method Resolver::lookup_service -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList (TInterface "Gio" "SrvTarget") -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_service" g_resolver_lookup_service :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- service : TBasicType TUTF8 CString -> -- protocol : TBasicType TUTF8 CString -> -- domain : TBasicType TUTF8 Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr SrvTarget))) resolverLookupService :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- service T.Text -> -- protocol T.Text -> -- domain Maybe (b) -> -- cancellable m [SrvTarget] resolverLookupService _obj service protocol domain cancellable = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj service' <- textToCString service protocol' <- textToCString protocol domain' <- textToCString domain maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_resolver_lookup_service _obj' service' protocol' domain' maybeCancellable checkUnexpectedReturnNULL "g_resolver_lookup_service" result result' <- unpackGList result result'' <- mapM (wrapBoxed SrvTarget) result' g_list_free result touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem service' freeMem protocol' freeMem domain' return result'' ) (do freeMem service' freeMem protocol' freeMem domain' ) -- method Resolver::lookup_service_async -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_resolver_lookup_service_async" g_resolver_lookup_service_async :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" CString -> -- service : TBasicType TUTF8 CString -> -- protocol : TBasicType TUTF8 CString -> -- domain : TBasicType TUTF8 Ptr Cancellable -> -- cancellable : TInterface "Gio" "Cancellable" FunPtr AsyncReadyCallbackC -> -- callback : TInterface "Gio" "AsyncReadyCallback" Ptr () -> -- user_data : TBasicType TVoid IO () resolverLookupServiceAsync :: (MonadIO m, ResolverK a, CancellableK b) => a -> -- _obj T.Text -> -- service T.Text -> -- protocol T.Text -> -- domain Maybe (b) -> -- cancellable Maybe (AsyncReadyCallback) -> -- callback m () resolverLookupServiceAsync _obj service protocol domain cancellable callback = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj service' <- textToCString service protocol' <- textToCString protocol domain' <- textToCString domain maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do let jCancellable' = unsafeManagedPtrCastPtr jCancellable return jCancellable' ptrcallback <- callocMem :: IO (Ptr (FunPtr AsyncReadyCallbackC)) maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do jCallback' <- mkAsyncReadyCallback (asyncReadyCallbackWrapper (Just ptrcallback) jCallback) poke ptrcallback jCallback' return jCallback' let user_data = nullPtr g_resolver_lookup_service_async _obj' service' protocol' domain' maybeCancellable maybeCallback user_data touchManagedPtr _obj whenJust cancellable touchManagedPtr freeMem service' freeMem protocol' freeMem domain' return () -- method Resolver::lookup_service_finish -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList (TInterface "Gio" "SrvTarget") -- throws : True -- Skip return : False foreign import ccall "g_resolver_lookup_service_finish" g_resolver_lookup_service_finish :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" Ptr AsyncResult -> -- result : TInterface "Gio" "AsyncResult" Ptr (Ptr GError) -> -- error IO (Ptr (GList (Ptr SrvTarget))) resolverLookupServiceFinish :: (MonadIO m, ResolverK a, AsyncResultK b) => a -> -- _obj b -> -- result m [SrvTarget] resolverLookupServiceFinish _obj result_ = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let result_' = unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_resolver_lookup_service_finish _obj' result_' checkUnexpectedReturnNULL "g_resolver_lookup_service_finish" result result' <- unpackGList result result'' <- mapM (wrapBoxed SrvTarget) result' g_list_free result touchManagedPtr _obj touchManagedPtr result_ return result'' ) (do return () ) -- method Resolver::set_default -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "Resolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_resolver_set_default" g_resolver_set_default :: Ptr Resolver -> -- _obj : TInterface "Gio" "Resolver" IO () resolverSetDefault :: (MonadIO m, ResolverK a) => a -> -- _obj m () resolverSetDefault _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj g_resolver_set_default _obj' touchManagedPtr _obj return () -- method Resolver::get_default -- method type : MemberFunction -- Args : [] -- Lengths : [] -- hInArgs : [] -- returnType : TInterface "Gio" "Resolver" -- throws : False -- Skip return : False foreign import ccall "g_resolver_get_default" g_resolver_get_default :: IO (Ptr Resolver) resolverGetDefault :: (MonadIO m) => m Resolver resolverGetDefault = liftIO $ do result <- g_resolver_get_default checkUnexpectedReturnNULL "g_resolver_get_default" result result' <- (wrapObject Resolver) result return result'