gi-gio-2.0.20: GI/Gio/Objects/DBusObjectManagerServer.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer' is used to export 'GI.Gio.Interfaces.DBusObject.DBusObject' instances using
the standardized
<http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager org.freedesktop.DBus.ObjectManager>
interface. For example, remote D-Bus clients can get all objects
and properties in a single call. Additionally, any change in the
object hierarchy is broadcast using signals. This means that D-Bus
clients can keep caches up to date by only listening to D-Bus
signals.
The recommended path to export an object manager at is the path form of the
well-known name of a D-Bus service, or below. For example, if a D-Bus service
is available at the well-known name @net.example.ExampleService1@, the object
manager should typically be exported at @\/net\/example\/ExampleService1@, or
below (to allow for multiple object managers in a service).
It is supported, but not recommended, to export an object manager at the root
path, @\/@.
See 'GI.Gio.Objects.DBusObjectManagerClient.DBusObjectManagerClient' for the client-side code that is
intended to be used with 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer' or any D-Bus
object implementing the org.freedesktop.DBus.ObjectManager
interface.
/Since: 2.30/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gio.Objects.DBusObjectManagerServer
(
-- * Exported types
DBusObjectManagerServer(..) ,
IsDBusObjectManagerServer ,
toDBusObjectManagerServer ,
noDBusObjectManagerServer ,
-- * Methods
-- ** export #method:export#
#if ENABLE_OVERLOADING
DBusObjectManagerServerExportMethodInfo ,
#endif
dBusObjectManagerServerExport ,
-- ** exportUniquely #method:exportUniquely#
#if ENABLE_OVERLOADING
DBusObjectManagerServerExportUniquelyMethodInfo,
#endif
dBusObjectManagerServerExportUniquely ,
-- ** getConnection #method:getConnection#
#if ENABLE_OVERLOADING
DBusObjectManagerServerGetConnectionMethodInfo,
#endif
dBusObjectManagerServerGetConnection ,
-- ** isExported #method:isExported#
#if ENABLE_OVERLOADING
DBusObjectManagerServerIsExportedMethodInfo,
#endif
dBusObjectManagerServerIsExported ,
-- ** new #method:new#
dBusObjectManagerServerNew ,
-- ** setConnection #method:setConnection#
#if ENABLE_OVERLOADING
DBusObjectManagerServerSetConnectionMethodInfo,
#endif
dBusObjectManagerServerSetConnection ,
-- ** unexport #method:unexport#
#if ENABLE_OVERLOADING
DBusObjectManagerServerUnexportMethodInfo,
#endif
dBusObjectManagerServerUnexport ,
-- * Properties
-- ** connection #attr:connection#
{- | The 'GI.Gio.Objects.DBusConnection.DBusConnection' to export objects on.
/Since: 2.30/
-}
#if ENABLE_OVERLOADING
DBusObjectManagerServerConnectionPropertyInfo,
#endif
clearDBusObjectManagerServerConnection ,
constructDBusObjectManagerServerConnection,
#if ENABLE_OVERLOADING
dBusObjectManagerServerConnection ,
#endif
getDBusObjectManagerServerConnection ,
setDBusObjectManagerServerConnection ,
-- ** objectPath #attr:objectPath#
{- | The object path to register the manager object at.
/Since: 2.30/
-}
#if ENABLE_OVERLOADING
DBusObjectManagerServerObjectPathPropertyInfo,
#endif
constructDBusObjectManagerServerObjectPath,
#if ENABLE_OVERLOADING
dBusObjectManagerServerObjectPath ,
#endif
getDBusObjectManagerServerObjectPath ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Interfaces.DBusObjectManager as Gio.DBusObjectManager
import {-# SOURCE #-} qualified GI.Gio.Objects.DBusConnection as Gio.DBusConnection
import {-# SOURCE #-} qualified GI.Gio.Objects.DBusObjectSkeleton as Gio.DBusObjectSkeleton
-- | Memory-managed wrapper type.
newtype DBusObjectManagerServer = DBusObjectManagerServer (ManagedPtr DBusObjectManagerServer)
foreign import ccall "g_dbus_object_manager_server_get_type"
c_g_dbus_object_manager_server_get_type :: IO GType
instance GObject DBusObjectManagerServer where
gobjectType = c_g_dbus_object_manager_server_get_type
-- | Type class for types which can be safely cast to `DBusObjectManagerServer`, for instance with `toDBusObjectManagerServer`.
class (GObject o, O.IsDescendantOf DBusObjectManagerServer o) => IsDBusObjectManagerServer o
instance (GObject o, O.IsDescendantOf DBusObjectManagerServer o) => IsDBusObjectManagerServer o
instance O.HasParentTypes DBusObjectManagerServer
type instance O.ParentTypes DBusObjectManagerServer = '[GObject.Object.Object, Gio.DBusObjectManager.DBusObjectManager]
-- | Cast to `DBusObjectManagerServer`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDBusObjectManagerServer :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m DBusObjectManagerServer
toDBusObjectManagerServer = liftIO . unsafeCastTo DBusObjectManagerServer
-- | A convenience alias for `Nothing` :: `Maybe` `DBusObjectManagerServer`.
noDBusObjectManagerServer :: Maybe DBusObjectManagerServer
noDBusObjectManagerServer = Nothing
#if ENABLE_OVERLOADING
type family ResolveDBusObjectManagerServerMethod (t :: Symbol) (o :: *) :: * where
ResolveDBusObjectManagerServerMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDBusObjectManagerServerMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDBusObjectManagerServerMethod "export" o = DBusObjectManagerServerExportMethodInfo
ResolveDBusObjectManagerServerMethod "exportUniquely" o = DBusObjectManagerServerExportUniquelyMethodInfo
ResolveDBusObjectManagerServerMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDBusObjectManagerServerMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDBusObjectManagerServerMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDBusObjectManagerServerMethod "isExported" o = DBusObjectManagerServerIsExportedMethodInfo
ResolveDBusObjectManagerServerMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDBusObjectManagerServerMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDBusObjectManagerServerMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDBusObjectManagerServerMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveDBusObjectManagerServerMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDBusObjectManagerServerMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDBusObjectManagerServerMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDBusObjectManagerServerMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDBusObjectManagerServerMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDBusObjectManagerServerMethod "unexport" o = DBusObjectManagerServerUnexportMethodInfo
ResolveDBusObjectManagerServerMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveDBusObjectManagerServerMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDBusObjectManagerServerMethod "getConnection" o = DBusObjectManagerServerGetConnectionMethodInfo
ResolveDBusObjectManagerServerMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDBusObjectManagerServerMethod "getInterface" o = Gio.DBusObjectManager.DBusObjectManagerGetInterfaceMethodInfo
ResolveDBusObjectManagerServerMethod "getObject" o = Gio.DBusObjectManager.DBusObjectManagerGetObjectMethodInfo
ResolveDBusObjectManagerServerMethod "getObjectPath" o = Gio.DBusObjectManager.DBusObjectManagerGetObjectPathMethodInfo
ResolveDBusObjectManagerServerMethod "getObjects" o = Gio.DBusObjectManager.DBusObjectManagerGetObjectsMethodInfo
ResolveDBusObjectManagerServerMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDBusObjectManagerServerMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDBusObjectManagerServerMethod "setConnection" o = DBusObjectManagerServerSetConnectionMethodInfo
ResolveDBusObjectManagerServerMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDBusObjectManagerServerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDBusObjectManagerServerMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDBusObjectManagerServerMethod t DBusObjectManagerServer, O.MethodInfo info DBusObjectManagerServer p) => OL.IsLabel t (DBusObjectManagerServer -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
-- VVV Prop "connection"
-- Type: TInterface (Name {namespace = "Gio", name = "DBusConnection"})
-- Flags: [PropertyReadable,PropertyWritable]
-- Nullable: (Nothing,Just True)
{- |
Get the value of the “@connection@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' dBusObjectManagerServer #connection
@
-}
getDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe Gio.DBusConnection.DBusConnection)
getDBusObjectManagerServerConnection obj = liftIO $ B.Properties.getObjectPropertyObject obj "connection" Gio.DBusConnection.DBusConnection
{- |
Set the value of the “@connection@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' dBusObjectManagerServer [ #connection 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o, Gio.DBusConnection.IsDBusConnection a) => o -> a -> m ()
setDBusObjectManagerServerConnection obj val = liftIO $ B.Properties.setObjectPropertyObject obj "connection" (Just val)
{- |
Construct a `GValueConstruct` with valid value for the “@connection@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDBusObjectManagerServerConnection :: (IsDBusObjectManagerServer o, Gio.DBusConnection.IsDBusConnection a) => a -> IO (GValueConstruct o)
constructDBusObjectManagerServerConnection val = B.Properties.constructObjectPropertyObject "connection" (Just val)
{- |
Set the value of the “@connection@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #connection
@
-}
clearDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m ()
clearDBusObjectManagerServerConnection obj = liftIO $ B.Properties.setObjectPropertyObject obj "connection" (Nothing :: Maybe Gio.DBusConnection.DBusConnection)
#if ENABLE_OVERLOADING
data DBusObjectManagerServerConnectionPropertyInfo
instance AttrInfo DBusObjectManagerServerConnectionPropertyInfo where
type AttrAllowedOps DBusObjectManagerServerConnectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint DBusObjectManagerServerConnectionPropertyInfo = Gio.DBusConnection.IsDBusConnection
type AttrBaseTypeConstraint DBusObjectManagerServerConnectionPropertyInfo = IsDBusObjectManagerServer
type AttrGetType DBusObjectManagerServerConnectionPropertyInfo = (Maybe Gio.DBusConnection.DBusConnection)
type AttrLabel DBusObjectManagerServerConnectionPropertyInfo = "connection"
type AttrOrigin DBusObjectManagerServerConnectionPropertyInfo = DBusObjectManagerServer
attrGet _ = getDBusObjectManagerServerConnection
attrSet _ = setDBusObjectManagerServerConnection
attrConstruct _ = constructDBusObjectManagerServerConnection
attrClear _ = clearDBusObjectManagerServerConnection
#endif
-- VVV Prop "object-path"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
{- |
Get the value of the “@object-path@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' dBusObjectManagerServer #objectPath
@
-}
getDBusObjectManagerServerObjectPath :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe T.Text)
getDBusObjectManagerServerObjectPath obj = liftIO $ B.Properties.getObjectPropertyString obj "object-path"
{- |
Construct a `GValueConstruct` with valid value for the “@object-path@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDBusObjectManagerServerObjectPath :: (IsDBusObjectManagerServer o) => T.Text -> IO (GValueConstruct o)
constructDBusObjectManagerServerObjectPath val = B.Properties.constructObjectPropertyString "object-path" (Just val)
#if ENABLE_OVERLOADING
data DBusObjectManagerServerObjectPathPropertyInfo
instance AttrInfo DBusObjectManagerServerObjectPathPropertyInfo where
type AttrAllowedOps DBusObjectManagerServerObjectPathPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint DBusObjectManagerServerObjectPathPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint DBusObjectManagerServerObjectPathPropertyInfo = IsDBusObjectManagerServer
type AttrGetType DBusObjectManagerServerObjectPathPropertyInfo = (Maybe T.Text)
type AttrLabel DBusObjectManagerServerObjectPathPropertyInfo = "object-path"
type AttrOrigin DBusObjectManagerServerObjectPathPropertyInfo = DBusObjectManagerServer
attrGet _ = getDBusObjectManagerServerObjectPath
attrSet _ = undefined
attrConstruct _ = constructDBusObjectManagerServerObjectPath
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList DBusObjectManagerServer
type instance O.AttributeList DBusObjectManagerServer = DBusObjectManagerServerAttributeList
type DBusObjectManagerServerAttributeList = ('[ '("connection", DBusObjectManagerServerConnectionPropertyInfo), '("objectPath", DBusObjectManagerServerObjectPathPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
dBusObjectManagerServerConnection :: AttrLabelProxy "connection"
dBusObjectManagerServerConnection = AttrLabelProxy
dBusObjectManagerServerObjectPath :: AttrLabelProxy "objectPath"
dBusObjectManagerServerObjectPath = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList DBusObjectManagerServer = DBusObjectManagerServerSignalList
type DBusObjectManagerServerSignalList = ('[ '("interfaceAdded", Gio.DBusObjectManager.DBusObjectManagerInterfaceAddedSignalInfo), '("interfaceRemoved", Gio.DBusObjectManager.DBusObjectManagerInterfaceRemovedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("objectAdded", Gio.DBusObjectManager.DBusObjectManagerObjectAddedSignalInfo), '("objectRemoved", Gio.DBusObjectManager.DBusObjectManagerObjectRemovedSignalInfo)] :: [(Symbol, *)])
#endif
-- method DBusObjectManagerServer::new
-- method type : Constructor
-- Args : [Arg {argCName = "object_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The object path to export the manager object at.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_new" g_dbus_object_manager_server_new ::
CString -> -- object_path : TBasicType TUTF8
IO (Ptr DBusObjectManagerServer)
{- |
Creates a new 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer' object.
The returned server isn\'t yet exported on any connection. To do so,
use 'GI.Gio.Objects.DBusObjectManagerServer.dBusObjectManagerServerSetConnection'. Normally you
want to export all of your objects before doing so to avoid
<http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager InterfacesAdded>
signals being emitted.
/Since: 2.30/
-}
dBusObjectManagerServerNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@objectPath@/: The object path to export the manager object at. -}
-> m DBusObjectManagerServer
{- ^ __Returns:__ A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer' object. Free with 'GI.GObject.Objects.Object.objectUnref'. -}
dBusObjectManagerServerNew objectPath = liftIO $ do
objectPath' <- textToCString objectPath
result <- g_dbus_object_manager_server_new objectPath'
checkUnexpectedReturnNULL "dBusObjectManagerServerNew" result
result' <- (wrapObject DBusObjectManagerServer) result
freeMem objectPath'
return result'
#if ENABLE_OVERLOADING
#endif
-- method DBusObjectManagerServer::export
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectSkeleton.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_export" g_dbus_object_manager_server_export ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
Ptr Gio.DBusObjectSkeleton.DBusObjectSkeleton -> -- object : TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"})
IO ()
{- |
Exports /@object@/ on /@manager@/.
If there is already a 'GI.Gio.Interfaces.DBusObject.DBusObject' exported at the object path,
then the old object is removed.
The object path for /@object@/ must be in the hierarchy rooted by the
object path for /@manager@/.
Note that /@manager@/ will take a reference on /@object@/ for as long as
it is exported.
/Since: 2.30/
-}
dBusObjectManagerServerExport ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer'. -}
-> b
{- ^ /@object@/: A 'GI.Gio.Objects.DBusObjectSkeleton.DBusObjectSkeleton'. -}
-> m ()
dBusObjectManagerServerExport manager object = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
object' <- unsafeManagedPtrCastPtr object
g_dbus_object_manager_server_export manager' object'
touchManagedPtr manager
touchManagedPtr object
return ()
#if ENABLE_OVERLOADING
data DBusObjectManagerServerExportMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) => O.MethodInfo DBusObjectManagerServerExportMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerExport
#endif
-- method DBusObjectManagerServer::export_uniquely
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_export_uniquely" g_dbus_object_manager_server_export_uniquely ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
Ptr Gio.DBusObjectSkeleton.DBusObjectSkeleton -> -- object : TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"})
IO ()
{- |
Like 'GI.Gio.Objects.DBusObjectManagerServer.dBusObjectManagerServerExport' but appends a string of
the form _N (with N being a natural number) to /@object@/\'s object path
if an object with the given path already exists. As such, the
'GI.Gio.Objects.DBusObjectProxy.DBusObjectProxy':@/g-object-path/@ property of /@object@/ may be modified.
/Since: 2.30/
-}
dBusObjectManagerServerExportUniquely ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer'. -}
-> b
{- ^ /@object@/: An object. -}
-> m ()
dBusObjectManagerServerExportUniquely manager object = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
object' <- unsafeManagedPtrCastPtr object
g_dbus_object_manager_server_export_uniquely manager' object'
touchManagedPtr manager
touchManagedPtr object
return ()
#if ENABLE_OVERLOADING
data DBusObjectManagerServerExportUniquelyMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) => O.MethodInfo DBusObjectManagerServerExportUniquelyMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerExportUniquely
#endif
-- method DBusObjectManagerServer::get_connection
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusConnection"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_get_connection" g_dbus_object_manager_server_get_connection ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
IO (Ptr Gio.DBusConnection.DBusConnection)
{- |
Gets the 'GI.Gio.Objects.DBusConnection.DBusConnection' used by /@manager@/.
/Since: 2.30/
-}
dBusObjectManagerServerGetConnection ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer' -}
-> m Gio.DBusConnection.DBusConnection
{- ^ __Returns:__ A 'GI.Gio.Objects.DBusConnection.DBusConnection' object or 'Nothing' if
/@manager@/ isn\'t exported on a connection. The returned object should
be freed with 'GI.GObject.Objects.Object.objectUnref'. -}
dBusObjectManagerServerGetConnection manager = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
result <- g_dbus_object_manager_server_get_connection manager'
checkUnexpectedReturnNULL "dBusObjectManagerServerGetConnection" result
result' <- (wrapObject Gio.DBusConnection.DBusConnection) result
touchManagedPtr manager
return result'
#if ENABLE_OVERLOADING
data DBusObjectManagerServerGetConnectionMethodInfo
instance (signature ~ (m Gio.DBusConnection.DBusConnection), MonadIO m, IsDBusObjectManagerServer a) => O.MethodInfo DBusObjectManagerServerGetConnectionMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerGetConnection
#endif
-- method DBusObjectManagerServer::is_exported
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_is_exported" g_dbus_object_manager_server_is_exported ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
Ptr Gio.DBusObjectSkeleton.DBusObjectSkeleton -> -- object : TInterface (Name {namespace = "Gio", name = "DBusObjectSkeleton"})
IO CInt
{- |
Returns whether /@object@/ is currently exported on /@manager@/.
/Since: 2.34/
-}
dBusObjectManagerServerIsExported ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer'. -}
-> b
{- ^ /@object@/: An object. -}
-> m Bool
{- ^ __Returns:__ 'True' if /@object@/ is exported -}
dBusObjectManagerServerIsExported manager object = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
object' <- unsafeManagedPtrCastPtr object
result <- g_dbus_object_manager_server_is_exported manager' object'
let result' = (/= 0) result
touchManagedPtr manager
touchManagedPtr object
return result'
#if ENABLE_OVERLOADING
data DBusObjectManagerServerIsExportedMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsDBusObjectManagerServer a, Gio.DBusObjectSkeleton.IsDBusObjectSkeleton b) => O.MethodInfo DBusObjectManagerServerIsExportedMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerIsExported
#endif
-- method DBusObjectManagerServer::set_connection
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "connection", argType = TInterface (Name {namespace = "Gio", name = "DBusConnection"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GDBusConnection or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_set_connection" g_dbus_object_manager_server_set_connection ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
Ptr Gio.DBusConnection.DBusConnection -> -- connection : TInterface (Name {namespace = "Gio", name = "DBusConnection"})
IO ()
{- |
Exports all objects managed by /@manager@/ on /@connection@/. If
/@connection@/ is 'Nothing', stops exporting objects.
-}
dBusObjectManagerServerSetConnection ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a, Gio.DBusConnection.IsDBusConnection b) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer'. -}
-> Maybe (b)
{- ^ /@connection@/: A 'GI.Gio.Objects.DBusConnection.DBusConnection' or 'Nothing'. -}
-> m ()
dBusObjectManagerServerSetConnection manager connection = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
maybeConnection <- case connection of
Nothing -> return nullPtr
Just jConnection -> do
jConnection' <- unsafeManagedPtrCastPtr jConnection
return jConnection'
g_dbus_object_manager_server_set_connection manager' maybeConnection
touchManagedPtr manager
whenJust connection touchManagedPtr
return ()
#if ENABLE_OVERLOADING
data DBusObjectManagerServerSetConnectionMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsDBusObjectManagerServer a, Gio.DBusConnection.IsDBusConnection b) => O.MethodInfo DBusObjectManagerServerSetConnectionMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerSetConnection
#endif
-- method DBusObjectManagerServer::unexport
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusObjectManagerServer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An object path.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "g_dbus_object_manager_server_unexport" g_dbus_object_manager_server_unexport ::
Ptr DBusObjectManagerServer -> -- manager : TInterface (Name {namespace = "Gio", name = "DBusObjectManagerServer"})
CString -> -- object_path : TBasicType TUTF8
IO CInt
{- |
If /@manager@/ has an object at /@path@/, removes the object. Otherwise
does nothing.
Note that /@objectPath@/ must be in the hierarchy rooted by the
object path for /@manager@/.
/Since: 2.30/
-}
dBusObjectManagerServerUnexport ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObjectManagerServer a) =>
a
{- ^ /@manager@/: A 'GI.Gio.Objects.DBusObjectManagerServer.DBusObjectManagerServer'. -}
-> T.Text
{- ^ /@objectPath@/: An object path. -}
-> m Bool
{- ^ __Returns:__ 'True' if object at /@objectPath@/ was removed, 'False' otherwise. -}
dBusObjectManagerServerUnexport manager objectPath = liftIO $ do
manager' <- unsafeManagedPtrCastPtr manager
objectPath' <- textToCString objectPath
result <- g_dbus_object_manager_server_unexport manager' objectPath'
let result' = (/= 0) result
touchManagedPtr manager
freeMem objectPath'
return result'
#if ENABLE_OVERLOADING
data DBusObjectManagerServerUnexportMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsDBusObjectManagerServer a) => O.MethodInfo DBusObjectManagerServerUnexportMethodInfo a signature where
overloadedMethod _ = dBusObjectManagerServerUnexport
#endif