module GI.Gio.Objects.DBusAuthObserver
(
DBusAuthObserver(..) ,
DBusAuthObserverK ,
toDBusAuthObserver ,
noDBusAuthObserver ,
dBusAuthObserverAllowMechanism ,
dBusAuthObserverAuthorizeAuthenticatedPeer,
dBusAuthObserverNew ,
DBusAuthObserverAllowMechanismCallback ,
DBusAuthObserverAllowMechanismCallbackC ,
DBusAuthObserverAllowMechanismSignalInfo,
afterDBusAuthObserverAllowMechanism ,
dBusAuthObserverAllowMechanismCallbackWrapper,
dBusAuthObserverAllowMechanismClosure ,
mkDBusAuthObserverAllowMechanismCallback,
noDBusAuthObserverAllowMechanismCallback,
onDBusAuthObserverAllowMechanism ,
DBusAuthObserverAuthorizeAuthenticatedPeerCallback,
DBusAuthObserverAuthorizeAuthenticatedPeerCallbackC,
DBusAuthObserverAuthorizeAuthenticatedPeerSignalInfo,
afterDBusAuthObserverAuthorizeAuthenticatedPeer,
dBusAuthObserverAuthorizeAuthenticatedPeerCallbackWrapper,
dBusAuthObserverAuthorizeAuthenticatedPeerClosure,
mkDBusAuthObserverAuthorizeAuthenticatedPeerCallback,
noDBusAuthObserverAuthorizeAuthenticatedPeerCallback,
onDBusAuthObserverAuthorizeAuthenticatedPeer,
) 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 DBusAuthObserver = DBusAuthObserver (ForeignPtr DBusAuthObserver)
foreign import ccall "g_dbus_auth_observer_get_type"
c_g_dbus_auth_observer_get_type :: IO GType
type instance ParentTypes DBusAuthObserver = DBusAuthObserverParentTypes
type DBusAuthObserverParentTypes = '[GObject.Object]
instance GObject DBusAuthObserver where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_dbus_auth_observer_get_type
class GObject o => DBusAuthObserverK o
instance (GObject o, IsDescendantOf DBusAuthObserver o) => DBusAuthObserverK o
toDBusAuthObserver :: DBusAuthObserverK o => o -> IO DBusAuthObserver
toDBusAuthObserver = unsafeCastTo DBusAuthObserver
noDBusAuthObserver :: Maybe DBusAuthObserver
noDBusAuthObserver = Nothing
type DBusAuthObserverAllowMechanismCallback =
T.Text ->
IO Bool
noDBusAuthObserverAllowMechanismCallback :: Maybe DBusAuthObserverAllowMechanismCallback
noDBusAuthObserverAllowMechanismCallback = Nothing
type DBusAuthObserverAllowMechanismCallbackC =
Ptr () ->
CString ->
Ptr () ->
IO CInt
foreign import ccall "wrapper"
mkDBusAuthObserverAllowMechanismCallback :: DBusAuthObserverAllowMechanismCallbackC -> IO (FunPtr DBusAuthObserverAllowMechanismCallbackC)
dBusAuthObserverAllowMechanismClosure :: DBusAuthObserverAllowMechanismCallback -> IO Closure
dBusAuthObserverAllowMechanismClosure cb = newCClosure =<< mkDBusAuthObserverAllowMechanismCallback wrapped
where wrapped = dBusAuthObserverAllowMechanismCallbackWrapper cb
dBusAuthObserverAllowMechanismCallbackWrapper ::
DBusAuthObserverAllowMechanismCallback ->
Ptr () ->
CString ->
Ptr () ->
IO CInt
dBusAuthObserverAllowMechanismCallbackWrapper _cb _ mechanism _ = do
mechanism' <- cstringToText mechanism
result <- _cb mechanism'
let result' = (fromIntegral . fromEnum) result
return result'
onDBusAuthObserverAllowMechanism :: (GObject a, MonadIO m) => a -> DBusAuthObserverAllowMechanismCallback -> m SignalHandlerId
onDBusAuthObserverAllowMechanism obj cb = liftIO $ connectDBusAuthObserverAllowMechanism obj cb SignalConnectBefore
afterDBusAuthObserverAllowMechanism :: (GObject a, MonadIO m) => a -> DBusAuthObserverAllowMechanismCallback -> m SignalHandlerId
afterDBusAuthObserverAllowMechanism obj cb = connectDBusAuthObserverAllowMechanism obj cb SignalConnectAfter
connectDBusAuthObserverAllowMechanism :: (GObject a, MonadIO m) =>
a -> DBusAuthObserverAllowMechanismCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusAuthObserverAllowMechanism obj cb after = liftIO $ do
cb' <- mkDBusAuthObserverAllowMechanismCallback (dBusAuthObserverAllowMechanismCallbackWrapper cb)
connectSignalFunPtr obj "allow-mechanism" cb' after
type DBusAuthObserverAuthorizeAuthenticatedPeerCallback =
IOStream ->
Maybe Credentials ->
IO Bool
noDBusAuthObserverAuthorizeAuthenticatedPeerCallback :: Maybe DBusAuthObserverAuthorizeAuthenticatedPeerCallback
noDBusAuthObserverAuthorizeAuthenticatedPeerCallback = Nothing
type DBusAuthObserverAuthorizeAuthenticatedPeerCallbackC =
Ptr () ->
Ptr IOStream ->
Ptr Credentials ->
Ptr () ->
IO CInt
foreign import ccall "wrapper"
mkDBusAuthObserverAuthorizeAuthenticatedPeerCallback :: DBusAuthObserverAuthorizeAuthenticatedPeerCallbackC -> IO (FunPtr DBusAuthObserverAuthorizeAuthenticatedPeerCallbackC)
dBusAuthObserverAuthorizeAuthenticatedPeerClosure :: DBusAuthObserverAuthorizeAuthenticatedPeerCallback -> IO Closure
dBusAuthObserverAuthorizeAuthenticatedPeerClosure cb = newCClosure =<< mkDBusAuthObserverAuthorizeAuthenticatedPeerCallback wrapped
where wrapped = dBusAuthObserverAuthorizeAuthenticatedPeerCallbackWrapper cb
dBusAuthObserverAuthorizeAuthenticatedPeerCallbackWrapper ::
DBusAuthObserverAuthorizeAuthenticatedPeerCallback ->
Ptr () ->
Ptr IOStream ->
Ptr Credentials ->
Ptr () ->
IO CInt
dBusAuthObserverAuthorizeAuthenticatedPeerCallbackWrapper _cb _ stream credentials _ = do
stream' <- (newObject IOStream) stream
maybeCredentials <-
if credentials == nullPtr
then return Nothing
else do
credentials' <- (newObject Credentials) credentials
return $ Just credentials'
result <- _cb stream' maybeCredentials
let result' = (fromIntegral . fromEnum) result
return result'
onDBusAuthObserverAuthorizeAuthenticatedPeer :: (GObject a, MonadIO m) => a -> DBusAuthObserverAuthorizeAuthenticatedPeerCallback -> m SignalHandlerId
onDBusAuthObserverAuthorizeAuthenticatedPeer obj cb = liftIO $ connectDBusAuthObserverAuthorizeAuthenticatedPeer obj cb SignalConnectBefore
afterDBusAuthObserverAuthorizeAuthenticatedPeer :: (GObject a, MonadIO m) => a -> DBusAuthObserverAuthorizeAuthenticatedPeerCallback -> m SignalHandlerId
afterDBusAuthObserverAuthorizeAuthenticatedPeer obj cb = connectDBusAuthObserverAuthorizeAuthenticatedPeer obj cb SignalConnectAfter
connectDBusAuthObserverAuthorizeAuthenticatedPeer :: (GObject a, MonadIO m) =>
a -> DBusAuthObserverAuthorizeAuthenticatedPeerCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusAuthObserverAuthorizeAuthenticatedPeer obj cb after = liftIO $ do
cb' <- mkDBusAuthObserverAuthorizeAuthenticatedPeerCallback (dBusAuthObserverAuthorizeAuthenticatedPeerCallbackWrapper cb)
connectSignalFunPtr obj "authorize-authenticated-peer" cb' after
type instance AttributeList DBusAuthObserver = DBusAuthObserverAttributeList
type DBusAuthObserverAttributeList = ('[ ] :: [(Symbol, *)])
data DBusAuthObserverAllowMechanismSignalInfo
instance SignalInfo DBusAuthObserverAllowMechanismSignalInfo where
type HaskellCallbackType DBusAuthObserverAllowMechanismSignalInfo = DBusAuthObserverAllowMechanismCallback
connectSignal _ = connectDBusAuthObserverAllowMechanism
data DBusAuthObserverAuthorizeAuthenticatedPeerSignalInfo
instance SignalInfo DBusAuthObserverAuthorizeAuthenticatedPeerSignalInfo where
type HaskellCallbackType DBusAuthObserverAuthorizeAuthenticatedPeerSignalInfo = DBusAuthObserverAuthorizeAuthenticatedPeerCallback
connectSignal _ = connectDBusAuthObserverAuthorizeAuthenticatedPeer
type instance SignalList DBusAuthObserver = DBusAuthObserverSignalList
type DBusAuthObserverSignalList = ('[ '("allow-mechanism", DBusAuthObserverAllowMechanismSignalInfo), '("authorize-authenticated-peer", DBusAuthObserverAuthorizeAuthenticatedPeerSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_dbus_auth_observer_new" g_dbus_auth_observer_new ::
IO (Ptr DBusAuthObserver)
dBusAuthObserverNew ::
(MonadIO m) =>
m DBusAuthObserver
dBusAuthObserverNew = liftIO $ do
result <- g_dbus_auth_observer_new
checkUnexpectedReturnNULL "g_dbus_auth_observer_new" result
result' <- (wrapObject DBusAuthObserver) result
return result'
foreign import ccall "g_dbus_auth_observer_allow_mechanism" g_dbus_auth_observer_allow_mechanism ::
Ptr DBusAuthObserver ->
CString ->
IO CInt
dBusAuthObserverAllowMechanism ::
(MonadIO m, DBusAuthObserverK a) =>
a ->
T.Text ->
m Bool
dBusAuthObserverAllowMechanism _obj mechanism = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
mechanism' <- textToCString mechanism
result <- g_dbus_auth_observer_allow_mechanism _obj' mechanism'
let result' = (/= 0) result
touchManagedPtr _obj
freeMem mechanism'
return result'
foreign import ccall "g_dbus_auth_observer_authorize_authenticated_peer" g_dbus_auth_observer_authorize_authenticated_peer ::
Ptr DBusAuthObserver ->
Ptr IOStream ->
Ptr Credentials ->
IO CInt
dBusAuthObserverAuthorizeAuthenticatedPeer ::
(MonadIO m, DBusAuthObserverK a, IOStreamK b, CredentialsK c) =>
a ->
b ->
Maybe (c) ->
m Bool
dBusAuthObserverAuthorizeAuthenticatedPeer _obj stream credentials = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let stream' = unsafeManagedPtrCastPtr stream
maybeCredentials <- case credentials of
Nothing -> return nullPtr
Just jCredentials -> do
let jCredentials' = unsafeManagedPtrCastPtr jCredentials
return jCredentials'
result <- g_dbus_auth_observer_authorize_authenticated_peer _obj' stream' maybeCredentials
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr stream
whenJust credentials touchManagedPtr
return result'