gi-gio-0.2.44.12: GI/Gio/Interfaces/DBusObject.hs
{- |
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.Interfaces.DBusObject
(
-- * Exported types
DBusObject(..) ,
noDBusObject ,
DBusObjectK ,
toDBusObject ,
-- * Methods
-- ** dBusObjectGetInterface
dBusObjectGetInterface ,
-- ** dBusObjectGetInterfaces
dBusObjectGetInterfaces ,
-- ** dBusObjectGetObjectPath
dBusObjectGetObjectPath ,
-- * Signals
-- ** InterfaceAdded
DBusObjectInterfaceAddedCallback ,
DBusObjectInterfaceAddedCallbackC ,
DBusObjectInterfaceAddedSignalInfo ,
afterDBusObjectInterfaceAdded ,
dBusObjectInterfaceAddedCallbackWrapper ,
dBusObjectInterfaceAddedClosure ,
mkDBusObjectInterfaceAddedCallback ,
noDBusObjectInterfaceAddedCallback ,
onDBusObjectInterfaceAdded ,
-- ** InterfaceRemoved
DBusObjectInterfaceRemovedCallback ,
DBusObjectInterfaceRemovedCallbackC ,
DBusObjectInterfaceRemovedSignalInfo ,
afterDBusObjectInterfaceRemoved ,
dBusObjectInterfaceRemovedCallbackWrapper,
dBusObjectInterfaceRemovedClosure ,
mkDBusObjectInterfaceRemovedCallback ,
noDBusObjectInterfaceRemovedCallback ,
onDBusObjectInterfaceRemoved ,
) 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
-- interface DBusObject
newtype DBusObject = DBusObject (ForeignPtr DBusObject)
noDBusObject :: Maybe DBusObject
noDBusObject = Nothing
-- signal DBusObject::interface-added
type DBusObjectInterfaceAddedCallback =
DBusInterface ->
IO ()
noDBusObjectInterfaceAddedCallback :: Maybe DBusObjectInterfaceAddedCallback
noDBusObjectInterfaceAddedCallback = Nothing
type DBusObjectInterfaceAddedCallbackC =
Ptr () -> -- object
Ptr DBusInterface ->
Ptr () -> -- user_data
IO ()
foreign import ccall "wrapper"
mkDBusObjectInterfaceAddedCallback :: DBusObjectInterfaceAddedCallbackC -> IO (FunPtr DBusObjectInterfaceAddedCallbackC)
dBusObjectInterfaceAddedClosure :: DBusObjectInterfaceAddedCallback -> IO Closure
dBusObjectInterfaceAddedClosure cb = newCClosure =<< mkDBusObjectInterfaceAddedCallback wrapped
where wrapped = dBusObjectInterfaceAddedCallbackWrapper cb
dBusObjectInterfaceAddedCallbackWrapper ::
DBusObjectInterfaceAddedCallback ->
Ptr () ->
Ptr DBusInterface ->
Ptr () ->
IO ()
dBusObjectInterfaceAddedCallbackWrapper _cb _ interface _ = do
interface' <- (newObject DBusInterface) interface
_cb interface'
onDBusObjectInterfaceAdded :: (GObject a, MonadIO m) => a -> DBusObjectInterfaceAddedCallback -> m SignalHandlerId
onDBusObjectInterfaceAdded obj cb = liftIO $ connectDBusObjectInterfaceAdded obj cb SignalConnectBefore
afterDBusObjectInterfaceAdded :: (GObject a, MonadIO m) => a -> DBusObjectInterfaceAddedCallback -> m SignalHandlerId
afterDBusObjectInterfaceAdded obj cb = connectDBusObjectInterfaceAdded obj cb SignalConnectAfter
connectDBusObjectInterfaceAdded :: (GObject a, MonadIO m) =>
a -> DBusObjectInterfaceAddedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectInterfaceAdded obj cb after = liftIO $ do
cb' <- mkDBusObjectInterfaceAddedCallback (dBusObjectInterfaceAddedCallbackWrapper cb)
connectSignalFunPtr obj "interface-added" cb' after
-- signal DBusObject::interface-removed
type DBusObjectInterfaceRemovedCallback =
DBusInterface ->
IO ()
noDBusObjectInterfaceRemovedCallback :: Maybe DBusObjectInterfaceRemovedCallback
noDBusObjectInterfaceRemovedCallback = Nothing
type DBusObjectInterfaceRemovedCallbackC =
Ptr () -> -- object
Ptr DBusInterface ->
Ptr () -> -- user_data
IO ()
foreign import ccall "wrapper"
mkDBusObjectInterfaceRemovedCallback :: DBusObjectInterfaceRemovedCallbackC -> IO (FunPtr DBusObjectInterfaceRemovedCallbackC)
dBusObjectInterfaceRemovedClosure :: DBusObjectInterfaceRemovedCallback -> IO Closure
dBusObjectInterfaceRemovedClosure cb = newCClosure =<< mkDBusObjectInterfaceRemovedCallback wrapped
where wrapped = dBusObjectInterfaceRemovedCallbackWrapper cb
dBusObjectInterfaceRemovedCallbackWrapper ::
DBusObjectInterfaceRemovedCallback ->
Ptr () ->
Ptr DBusInterface ->
Ptr () ->
IO ()
dBusObjectInterfaceRemovedCallbackWrapper _cb _ interface _ = do
interface' <- (newObject DBusInterface) interface
_cb interface'
onDBusObjectInterfaceRemoved :: (GObject a, MonadIO m) => a -> DBusObjectInterfaceRemovedCallback -> m SignalHandlerId
onDBusObjectInterfaceRemoved obj cb = liftIO $ connectDBusObjectInterfaceRemoved obj cb SignalConnectBefore
afterDBusObjectInterfaceRemoved :: (GObject a, MonadIO m) => a -> DBusObjectInterfaceRemovedCallback -> m SignalHandlerId
afterDBusObjectInterfaceRemoved obj cb = connectDBusObjectInterfaceRemoved obj cb SignalConnectAfter
connectDBusObjectInterfaceRemoved :: (GObject a, MonadIO m) =>
a -> DBusObjectInterfaceRemovedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectInterfaceRemoved obj cb after = liftIO $ do
cb' <- mkDBusObjectInterfaceRemovedCallback (dBusObjectInterfaceRemovedCallbackWrapper cb)
connectSignalFunPtr obj "interface-removed" cb' after
type instance AttributeList DBusObject = DBusObjectAttributeList
type DBusObjectAttributeList = ('[ ] :: [(Symbol, *)])
data DBusObjectInterfaceAddedSignalInfo
instance SignalInfo DBusObjectInterfaceAddedSignalInfo where
type HaskellCallbackType DBusObjectInterfaceAddedSignalInfo = DBusObjectInterfaceAddedCallback
connectSignal _ = connectDBusObjectInterfaceAdded
data DBusObjectInterfaceRemovedSignalInfo
instance SignalInfo DBusObjectInterfaceRemovedSignalInfo where
type HaskellCallbackType DBusObjectInterfaceRemovedSignalInfo = DBusObjectInterfaceRemovedCallback
connectSignal _ = connectDBusObjectInterfaceRemoved
type instance SignalList DBusObject = DBusObjectSignalList
type DBusObjectSignalList = ('[ '("interface-added", DBusObjectInterfaceAddedSignalInfo), '("interface-removed", DBusObjectInterfaceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_dbus_object_get_type"
c_g_dbus_object_get_type :: IO GType
type instance ParentTypes DBusObject = DBusObjectParentTypes
type DBusObjectParentTypes = '[GObject.Object]
instance GObject DBusObject where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_dbus_object_get_type
class GObject o => DBusObjectK o
instance (GObject o, IsDescendantOf DBusObject o) => DBusObjectK o
toDBusObject :: DBusObjectK o => o -> IO DBusObject
toDBusObject = unsafeCastTo DBusObject
-- method DBusObject::get_interface
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gio" "DBusInterface"
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_get_interface" g_dbus_object_get_interface ::
Ptr DBusObject -> -- _obj : TInterface "Gio" "DBusObject"
CString -> -- interface_name : TBasicType TUTF8
IO (Ptr DBusInterface)
dBusObjectGetInterface ::
(MonadIO m, DBusObjectK a) =>
a -> -- _obj
T.Text -> -- interface_name
m DBusInterface
dBusObjectGetInterface _obj interface_name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
interface_name' <- textToCString interface_name
result <- g_dbus_object_get_interface _obj' interface_name'
checkUnexpectedReturnNULL "g_dbus_object_get_interface" result
result' <- (wrapObject DBusInterface) result
touchManagedPtr _obj
freeMem interface_name'
return result'
-- method DBusObject::get_interfaces
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGList (TInterface "Gio" "DBusInterface")
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_get_interfaces" g_dbus_object_get_interfaces ::
Ptr DBusObject -> -- _obj : TInterface "Gio" "DBusObject"
IO (Ptr (GList (Ptr DBusInterface)))
dBusObjectGetInterfaces ::
(MonadIO m, DBusObjectK a) =>
a -> -- _obj
m [DBusInterface]
dBusObjectGetInterfaces _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_dbus_object_get_interfaces _obj'
checkUnexpectedReturnNULL "g_dbus_object_get_interfaces" result
result' <- unpackGList result
result'' <- mapM (wrapObject DBusInterface) result'
g_list_free result
touchManagedPtr _obj
return result''
-- method DBusObject::get_object_path
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gio" "DBusObject", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_get_object_path" g_dbus_object_get_object_path ::
Ptr DBusObject -> -- _obj : TInterface "Gio" "DBusObject"
IO CString
dBusObjectGetObjectPath ::
(MonadIO m, DBusObjectK a) =>
a -> -- _obj
m T.Text
dBusObjectGetObjectPath _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_dbus_object_get_object_path _obj'
checkUnexpectedReturnNULL "g_dbus_object_get_object_path" result
result' <- cstringToText result
touchManagedPtr _obj
return result'