packages feed

gi-gio-0.2.46.13: GI/Gio/Interfaces/DBusObjectManager.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.DBusObjectManager
    ( 

-- * Exported types
    DBusObjectManager(..)                   ,
    noDBusObjectManager                     ,
    DBusObjectManagerK                      ,
    toDBusObjectManager                     ,


 -- * Methods
-- ** dBusObjectManagerGetInterface
    DBusObjectManagerGetInterfaceMethodInfo ,
    dBusObjectManagerGetInterface           ,


-- ** dBusObjectManagerGetObject
    DBusObjectManagerGetObjectMethodInfo    ,
    dBusObjectManagerGetObject              ,


-- ** dBusObjectManagerGetObjectPath
    DBusObjectManagerGetObjectPathMethodInfo,
    dBusObjectManagerGetObjectPath          ,


-- ** dBusObjectManagerGetObjects
    DBusObjectManagerGetObjectsMethodInfo   ,
    dBusObjectManagerGetObjects             ,




 -- * Signals
-- ** InterfaceAdded
    DBusObjectManagerInterfaceAddedCallback ,
    DBusObjectManagerInterfaceAddedCallbackC,
    DBusObjectManagerInterfaceAddedSignalInfo,
    afterDBusObjectManagerInterfaceAdded    ,
    dBusObjectManagerInterfaceAddedCallbackWrapper,
    dBusObjectManagerInterfaceAddedClosure  ,
    mkDBusObjectManagerInterfaceAddedCallback,
    noDBusObjectManagerInterfaceAddedCallback,
    onDBusObjectManagerInterfaceAdded       ,


-- ** InterfaceRemoved
    DBusObjectManagerInterfaceRemovedCallback,
    DBusObjectManagerInterfaceRemovedCallbackC,
    DBusObjectManagerInterfaceRemovedSignalInfo,
    afterDBusObjectManagerInterfaceRemoved  ,
    dBusObjectManagerInterfaceRemovedCallbackWrapper,
    dBusObjectManagerInterfaceRemovedClosure,
    mkDBusObjectManagerInterfaceRemovedCallback,
    noDBusObjectManagerInterfaceRemovedCallback,
    onDBusObjectManagerInterfaceRemoved     ,


-- ** ObjectAdded
    DBusObjectManagerObjectAddedCallback    ,
    DBusObjectManagerObjectAddedCallbackC   ,
    DBusObjectManagerObjectAddedSignalInfo  ,
    afterDBusObjectManagerObjectAdded       ,
    dBusObjectManagerObjectAddedCallbackWrapper,
    dBusObjectManagerObjectAddedClosure     ,
    mkDBusObjectManagerObjectAddedCallback  ,
    noDBusObjectManagerObjectAddedCallback  ,
    onDBusObjectManagerObjectAdded          ,


-- ** ObjectRemoved
    DBusObjectManagerObjectRemovedCallback  ,
    DBusObjectManagerObjectRemovedCallbackC ,
    DBusObjectManagerObjectRemovedSignalInfo,
    afterDBusObjectManagerObjectRemoved     ,
    dBusObjectManagerObjectRemovedCallbackWrapper,
    dBusObjectManagerObjectRemovedClosure   ,
    mkDBusObjectManagerObjectRemovedCallback,
    noDBusObjectManagerObjectRemovedCallback,
    onDBusObjectManagerObjectRemoved        ,




    ) 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 DBusObjectManager 

newtype DBusObjectManager = DBusObjectManager (ForeignPtr DBusObjectManager)
noDBusObjectManager :: Maybe DBusObjectManager
noDBusObjectManager = Nothing

type family ResolveDBusObjectManagerMethod (t :: Symbol) (o :: *) :: * where
    ResolveDBusObjectManagerMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveDBusObjectManagerMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveDBusObjectManagerMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveDBusObjectManagerMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveDBusObjectManagerMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveDBusObjectManagerMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveDBusObjectManagerMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveDBusObjectManagerMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveDBusObjectManagerMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveDBusObjectManagerMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveDBusObjectManagerMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveDBusObjectManagerMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveDBusObjectManagerMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveDBusObjectManagerMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveDBusObjectManagerMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveDBusObjectManagerMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveDBusObjectManagerMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveDBusObjectManagerMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveDBusObjectManagerMethod "getInterface" o = DBusObjectManagerGetInterfaceMethodInfo
    ResolveDBusObjectManagerMethod "getObject" o = DBusObjectManagerGetObjectMethodInfo
    ResolveDBusObjectManagerMethod "getObjectPath" o = DBusObjectManagerGetObjectPathMethodInfo
    ResolveDBusObjectManagerMethod "getObjects" o = DBusObjectManagerGetObjectsMethodInfo
    ResolveDBusObjectManagerMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveDBusObjectManagerMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveDBusObjectManagerMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveDBusObjectManagerMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveDBusObjectManagerMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveDBusObjectManagerMethod t DBusObjectManager, MethodInfo info DBusObjectManager p) => IsLabelProxy t (DBusObjectManager -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDBusObjectManagerMethod t DBusObjectManager, MethodInfo info DBusObjectManager p) => IsLabel t (DBusObjectManager -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- signal DBusObjectManager::interface-added
type DBusObjectManagerInterfaceAddedCallback =
    DBusObject ->
    DBusInterface ->
    IO ()

noDBusObjectManagerInterfaceAddedCallback :: Maybe DBusObjectManagerInterfaceAddedCallback
noDBusObjectManagerInterfaceAddedCallback = Nothing

type DBusObjectManagerInterfaceAddedCallbackC =
    Ptr () ->                               -- object
    Ptr DBusObject ->
    Ptr DBusInterface ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkDBusObjectManagerInterfaceAddedCallback :: DBusObjectManagerInterfaceAddedCallbackC -> IO (FunPtr DBusObjectManagerInterfaceAddedCallbackC)

dBusObjectManagerInterfaceAddedClosure :: DBusObjectManagerInterfaceAddedCallback -> IO Closure
dBusObjectManagerInterfaceAddedClosure cb = newCClosure =<< mkDBusObjectManagerInterfaceAddedCallback wrapped
    where wrapped = dBusObjectManagerInterfaceAddedCallbackWrapper cb

dBusObjectManagerInterfaceAddedCallbackWrapper ::
    DBusObjectManagerInterfaceAddedCallback ->
    Ptr () ->
    Ptr DBusObject ->
    Ptr DBusInterface ->
    Ptr () ->
    IO ()
dBusObjectManagerInterfaceAddedCallbackWrapper _cb _ object interface _ = do
    object' <- (newObject DBusObject) object
    interface' <- (newObject DBusInterface) interface
    _cb  object' interface'

onDBusObjectManagerInterfaceAdded :: (GObject a, MonadIO m) => a -> DBusObjectManagerInterfaceAddedCallback -> m SignalHandlerId
onDBusObjectManagerInterfaceAdded obj cb = liftIO $ connectDBusObjectManagerInterfaceAdded obj cb SignalConnectBefore
afterDBusObjectManagerInterfaceAdded :: (GObject a, MonadIO m) => a -> DBusObjectManagerInterfaceAddedCallback -> m SignalHandlerId
afterDBusObjectManagerInterfaceAdded obj cb = connectDBusObjectManagerInterfaceAdded obj cb SignalConnectAfter

connectDBusObjectManagerInterfaceAdded :: (GObject a, MonadIO m) =>
                                          a -> DBusObjectManagerInterfaceAddedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectManagerInterfaceAdded obj cb after = liftIO $ do
    cb' <- mkDBusObjectManagerInterfaceAddedCallback (dBusObjectManagerInterfaceAddedCallbackWrapper cb)
    connectSignalFunPtr obj "interface-added" cb' after

-- signal DBusObjectManager::interface-removed
type DBusObjectManagerInterfaceRemovedCallback =
    DBusObject ->
    DBusInterface ->
    IO ()

noDBusObjectManagerInterfaceRemovedCallback :: Maybe DBusObjectManagerInterfaceRemovedCallback
noDBusObjectManagerInterfaceRemovedCallback = Nothing

type DBusObjectManagerInterfaceRemovedCallbackC =
    Ptr () ->                               -- object
    Ptr DBusObject ->
    Ptr DBusInterface ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkDBusObjectManagerInterfaceRemovedCallback :: DBusObjectManagerInterfaceRemovedCallbackC -> IO (FunPtr DBusObjectManagerInterfaceRemovedCallbackC)

dBusObjectManagerInterfaceRemovedClosure :: DBusObjectManagerInterfaceRemovedCallback -> IO Closure
dBusObjectManagerInterfaceRemovedClosure cb = newCClosure =<< mkDBusObjectManagerInterfaceRemovedCallback wrapped
    where wrapped = dBusObjectManagerInterfaceRemovedCallbackWrapper cb

dBusObjectManagerInterfaceRemovedCallbackWrapper ::
    DBusObjectManagerInterfaceRemovedCallback ->
    Ptr () ->
    Ptr DBusObject ->
    Ptr DBusInterface ->
    Ptr () ->
    IO ()
dBusObjectManagerInterfaceRemovedCallbackWrapper _cb _ object interface _ = do
    object' <- (newObject DBusObject) object
    interface' <- (newObject DBusInterface) interface
    _cb  object' interface'

onDBusObjectManagerInterfaceRemoved :: (GObject a, MonadIO m) => a -> DBusObjectManagerInterfaceRemovedCallback -> m SignalHandlerId
onDBusObjectManagerInterfaceRemoved obj cb = liftIO $ connectDBusObjectManagerInterfaceRemoved obj cb SignalConnectBefore
afterDBusObjectManagerInterfaceRemoved :: (GObject a, MonadIO m) => a -> DBusObjectManagerInterfaceRemovedCallback -> m SignalHandlerId
afterDBusObjectManagerInterfaceRemoved obj cb = connectDBusObjectManagerInterfaceRemoved obj cb SignalConnectAfter

connectDBusObjectManagerInterfaceRemoved :: (GObject a, MonadIO m) =>
                                            a -> DBusObjectManagerInterfaceRemovedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectManagerInterfaceRemoved obj cb after = liftIO $ do
    cb' <- mkDBusObjectManagerInterfaceRemovedCallback (dBusObjectManagerInterfaceRemovedCallbackWrapper cb)
    connectSignalFunPtr obj "interface-removed" cb' after

-- signal DBusObjectManager::object-added
type DBusObjectManagerObjectAddedCallback =
    DBusObject ->
    IO ()

noDBusObjectManagerObjectAddedCallback :: Maybe DBusObjectManagerObjectAddedCallback
noDBusObjectManagerObjectAddedCallback = Nothing

type DBusObjectManagerObjectAddedCallbackC =
    Ptr () ->                               -- object
    Ptr DBusObject ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkDBusObjectManagerObjectAddedCallback :: DBusObjectManagerObjectAddedCallbackC -> IO (FunPtr DBusObjectManagerObjectAddedCallbackC)

dBusObjectManagerObjectAddedClosure :: DBusObjectManagerObjectAddedCallback -> IO Closure
dBusObjectManagerObjectAddedClosure cb = newCClosure =<< mkDBusObjectManagerObjectAddedCallback wrapped
    where wrapped = dBusObjectManagerObjectAddedCallbackWrapper cb

dBusObjectManagerObjectAddedCallbackWrapper ::
    DBusObjectManagerObjectAddedCallback ->
    Ptr () ->
    Ptr DBusObject ->
    Ptr () ->
    IO ()
dBusObjectManagerObjectAddedCallbackWrapper _cb _ object _ = do
    object' <- (newObject DBusObject) object
    _cb  object'

onDBusObjectManagerObjectAdded :: (GObject a, MonadIO m) => a -> DBusObjectManagerObjectAddedCallback -> m SignalHandlerId
onDBusObjectManagerObjectAdded obj cb = liftIO $ connectDBusObjectManagerObjectAdded obj cb SignalConnectBefore
afterDBusObjectManagerObjectAdded :: (GObject a, MonadIO m) => a -> DBusObjectManagerObjectAddedCallback -> m SignalHandlerId
afterDBusObjectManagerObjectAdded obj cb = connectDBusObjectManagerObjectAdded obj cb SignalConnectAfter

connectDBusObjectManagerObjectAdded :: (GObject a, MonadIO m) =>
                                       a -> DBusObjectManagerObjectAddedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectManagerObjectAdded obj cb after = liftIO $ do
    cb' <- mkDBusObjectManagerObjectAddedCallback (dBusObjectManagerObjectAddedCallbackWrapper cb)
    connectSignalFunPtr obj "object-added" cb' after

-- signal DBusObjectManager::object-removed
type DBusObjectManagerObjectRemovedCallback =
    DBusObject ->
    IO ()

noDBusObjectManagerObjectRemovedCallback :: Maybe DBusObjectManagerObjectRemovedCallback
noDBusObjectManagerObjectRemovedCallback = Nothing

type DBusObjectManagerObjectRemovedCallbackC =
    Ptr () ->                               -- object
    Ptr DBusObject ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkDBusObjectManagerObjectRemovedCallback :: DBusObjectManagerObjectRemovedCallbackC -> IO (FunPtr DBusObjectManagerObjectRemovedCallbackC)

dBusObjectManagerObjectRemovedClosure :: DBusObjectManagerObjectRemovedCallback -> IO Closure
dBusObjectManagerObjectRemovedClosure cb = newCClosure =<< mkDBusObjectManagerObjectRemovedCallback wrapped
    where wrapped = dBusObjectManagerObjectRemovedCallbackWrapper cb

dBusObjectManagerObjectRemovedCallbackWrapper ::
    DBusObjectManagerObjectRemovedCallback ->
    Ptr () ->
    Ptr DBusObject ->
    Ptr () ->
    IO ()
dBusObjectManagerObjectRemovedCallbackWrapper _cb _ object _ = do
    object' <- (newObject DBusObject) object
    _cb  object'

onDBusObjectManagerObjectRemoved :: (GObject a, MonadIO m) => a -> DBusObjectManagerObjectRemovedCallback -> m SignalHandlerId
onDBusObjectManagerObjectRemoved obj cb = liftIO $ connectDBusObjectManagerObjectRemoved obj cb SignalConnectBefore
afterDBusObjectManagerObjectRemoved :: (GObject a, MonadIO m) => a -> DBusObjectManagerObjectRemovedCallback -> m SignalHandlerId
afterDBusObjectManagerObjectRemoved obj cb = connectDBusObjectManagerObjectRemoved obj cb SignalConnectAfter

connectDBusObjectManagerObjectRemoved :: (GObject a, MonadIO m) =>
                                         a -> DBusObjectManagerObjectRemovedCallback -> SignalConnectMode -> m SignalHandlerId
connectDBusObjectManagerObjectRemoved obj cb after = liftIO $ do
    cb' <- mkDBusObjectManagerObjectRemovedCallback (dBusObjectManagerObjectRemovedCallbackWrapper cb)
    connectSignalFunPtr obj "object-removed" cb' after

type instance AttributeList DBusObjectManager = DBusObjectManagerAttributeList
type DBusObjectManagerAttributeList = ('[ ] :: [(Symbol, *)])

data DBusObjectManagerInterfaceAddedSignalInfo
instance SignalInfo DBusObjectManagerInterfaceAddedSignalInfo where
    type HaskellCallbackType DBusObjectManagerInterfaceAddedSignalInfo = DBusObjectManagerInterfaceAddedCallback
    connectSignal _ = connectDBusObjectManagerInterfaceAdded

data DBusObjectManagerInterfaceRemovedSignalInfo
instance SignalInfo DBusObjectManagerInterfaceRemovedSignalInfo where
    type HaskellCallbackType DBusObjectManagerInterfaceRemovedSignalInfo = DBusObjectManagerInterfaceRemovedCallback
    connectSignal _ = connectDBusObjectManagerInterfaceRemoved

data DBusObjectManagerObjectAddedSignalInfo
instance SignalInfo DBusObjectManagerObjectAddedSignalInfo where
    type HaskellCallbackType DBusObjectManagerObjectAddedSignalInfo = DBusObjectManagerObjectAddedCallback
    connectSignal _ = connectDBusObjectManagerObjectAdded

data DBusObjectManagerObjectRemovedSignalInfo
instance SignalInfo DBusObjectManagerObjectRemovedSignalInfo where
    type HaskellCallbackType DBusObjectManagerObjectRemovedSignalInfo = DBusObjectManagerObjectRemovedCallback
    connectSignal _ = connectDBusObjectManagerObjectRemoved

type instance SignalList DBusObjectManager = DBusObjectManagerSignalList
type DBusObjectManagerSignalList = ('[ '("interfaceAdded", DBusObjectManagerInterfaceAddedSignalInfo), '("interfaceRemoved", DBusObjectManagerInterfaceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("objectAdded", DBusObjectManagerObjectAddedSignalInfo), '("objectRemoved", DBusObjectManagerObjectRemovedSignalInfo)] :: [(Symbol, *)])

foreign import ccall "g_dbus_object_manager_get_type"
    c_g_dbus_object_manager_get_type :: IO GType

type instance ParentTypes DBusObjectManager = DBusObjectManagerParentTypes
type DBusObjectManagerParentTypes = '[GObject.Object]

instance GObject DBusObjectManager where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_dbus_object_manager_get_type
    

class GObject o => DBusObjectManagerK o
instance (GObject o, IsDescendantOf DBusObjectManager o) => DBusObjectManagerK o

toDBusObjectManager :: DBusObjectManagerK o => o -> IO DBusObjectManager
toDBusObjectManager = unsafeCastTo DBusObjectManager

-- method DBusObjectManager::get_interface
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "DBusObjectManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "DBusInterface"
-- throws : False
-- Skip return : False

foreign import ccall "g_dbus_object_manager_get_interface" g_dbus_object_manager_get_interface :: 
    Ptr DBusObjectManager ->                -- _obj : TInterface "Gio" "DBusObjectManager"
    CString ->                              -- object_path : TBasicType TUTF8
    CString ->                              -- interface_name : TBasicType TUTF8
    IO (Ptr DBusInterface)


dBusObjectManagerGetInterface ::
    (MonadIO m, DBusObjectManagerK a) =>
    a                                       -- _obj
    -> T.Text                               -- objectPath
    -> T.Text                               -- interfaceName
    -> m DBusInterface                      -- result
dBusObjectManagerGetInterface _obj objectPath interfaceName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    objectPath' <- textToCString objectPath
    interfaceName' <- textToCString interfaceName
    result <- g_dbus_object_manager_get_interface _obj' objectPath' interfaceName'
    checkUnexpectedReturnNULL "g_dbus_object_manager_get_interface" result
    result' <- (wrapObject DBusInterface) result
    touchManagedPtr _obj
    freeMem objectPath'
    freeMem interfaceName'
    return result'

data DBusObjectManagerGetInterfaceMethodInfo
instance (signature ~ (T.Text -> T.Text -> m DBusInterface), MonadIO m, DBusObjectManagerK a) => MethodInfo DBusObjectManagerGetInterfaceMethodInfo a signature where
    overloadedMethod _ = dBusObjectManagerGetInterface

-- method DBusObjectManager::get_object
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "DBusObjectManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "DBusObject"
-- throws : False
-- Skip return : False

foreign import ccall "g_dbus_object_manager_get_object" g_dbus_object_manager_get_object :: 
    Ptr DBusObjectManager ->                -- _obj : TInterface "Gio" "DBusObjectManager"
    CString ->                              -- object_path : TBasicType TUTF8
    IO (Ptr DBusObject)


dBusObjectManagerGetObject ::
    (MonadIO m, DBusObjectManagerK a) =>
    a                                       -- _obj
    -> T.Text                               -- objectPath
    -> m DBusObject                         -- result
dBusObjectManagerGetObject _obj objectPath = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    objectPath' <- textToCString objectPath
    result <- g_dbus_object_manager_get_object _obj' objectPath'
    checkUnexpectedReturnNULL "g_dbus_object_manager_get_object" result
    result' <- (wrapObject DBusObject) result
    touchManagedPtr _obj
    freeMem objectPath'
    return result'

data DBusObjectManagerGetObjectMethodInfo
instance (signature ~ (T.Text -> m DBusObject), MonadIO m, DBusObjectManagerK a) => MethodInfo DBusObjectManagerGetObjectMethodInfo a signature where
    overloadedMethod _ = dBusObjectManagerGetObject

-- method DBusObjectManager::get_object_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "DBusObjectManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "g_dbus_object_manager_get_object_path" g_dbus_object_manager_get_object_path :: 
    Ptr DBusObjectManager ->                -- _obj : TInterface "Gio" "DBusObjectManager"
    IO CString


dBusObjectManagerGetObjectPath ::
    (MonadIO m, DBusObjectManagerK a) =>
    a                                       -- _obj
    -> m T.Text                             -- result
dBusObjectManagerGetObjectPath _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_dbus_object_manager_get_object_path _obj'
    checkUnexpectedReturnNULL "g_dbus_object_manager_get_object_path" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

data DBusObjectManagerGetObjectPathMethodInfo
instance (signature ~ (m T.Text), MonadIO m, DBusObjectManagerK a) => MethodInfo DBusObjectManagerGetObjectPathMethodInfo a signature where
    overloadedMethod _ = dBusObjectManagerGetObjectPath

-- method DBusObjectManager::get_objects
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "DBusObjectManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TGList (TInterface "Gio" "DBusObject")
-- throws : False
-- Skip return : False

foreign import ccall "g_dbus_object_manager_get_objects" g_dbus_object_manager_get_objects :: 
    Ptr DBusObjectManager ->                -- _obj : TInterface "Gio" "DBusObjectManager"
    IO (Ptr (GList (Ptr DBusObject)))


dBusObjectManagerGetObjects ::
    (MonadIO m, DBusObjectManagerK a) =>
    a                                       -- _obj
    -> m [DBusObject]                       -- result
dBusObjectManagerGetObjects _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_dbus_object_manager_get_objects _obj'
    checkUnexpectedReturnNULL "g_dbus_object_manager_get_objects" result
    result' <- unpackGList result
    result'' <- mapM (wrapObject DBusObject) result'
    g_list_free result
    touchManagedPtr _obj
    return result''

data DBusObjectManagerGetObjectsMethodInfo
instance (signature ~ (m [DBusObject]), MonadIO m, DBusObjectManagerK a) => MethodInfo DBusObjectManagerGetObjectsMethodInfo a signature where
    overloadedMethod _ = dBusObjectManagerGetObjects