{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Information about nodes in a remote object hierarchy. /Since: 2.26/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gio.Structs.DBusNodeInfo ( -- * Exported types DBusNodeInfo(..) , newZeroDBusNodeInfo , noDBusNodeInfo , -- * Methods -- ** generateXml #method:generateXml# #if ENABLE_OVERLOADING DBusNodeInfoGenerateXmlMethodInfo , #endif dBusNodeInfoGenerateXml , -- ** lookupInterface #method:lookupInterface# #if ENABLE_OVERLOADING DBusNodeInfoLookupInterfaceMethodInfo , #endif dBusNodeInfoLookupInterface , -- ** newForXml #method:newForXml# dBusNodeInfoNewForXml , -- ** ref #method:ref# #if ENABLE_OVERLOADING DBusNodeInfoRefMethodInfo , #endif dBusNodeInfoRef , -- ** unref #method:unref# #if ENABLE_OVERLOADING DBusNodeInfoUnrefMethodInfo , #endif dBusNodeInfoUnref , -- * Properties -- ** annotations #attr:annotations# {- | A pointer to a 'Nothing'-terminated array of pointers to 'GI.Gio.Structs.DBusAnnotationInfo.DBusAnnotationInfo' structures or 'Nothing' if there are no annotations. -} clearDBusNodeInfoAnnotations , #if ENABLE_OVERLOADING dBusNodeInfo_annotations , #endif getDBusNodeInfoAnnotations , setDBusNodeInfoAnnotations , -- ** interfaces #attr:interfaces# {- | A pointer to a 'Nothing'-terminated array of pointers to 'GI.Gio.Structs.DBusInterfaceInfo.DBusInterfaceInfo' structures or 'Nothing' if there are no interfaces. -} clearDBusNodeInfoInterfaces , #if ENABLE_OVERLOADING dBusNodeInfo_interfaces , #endif getDBusNodeInfoInterfaces , setDBusNodeInfoInterfaces , -- ** nodes #attr:nodes# {- | A pointer to a 'Nothing'-terminated array of pointers to 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo' structures or 'Nothing' if there are no nodes. -} clearDBusNodeInfoNodes , #if ENABLE_OVERLOADING dBusNodeInfo_nodes , #endif getDBusNodeInfoNodes , setDBusNodeInfoNodes , -- ** path #attr:path# {- | The path of the node or 'Nothing' if omitted. Note that this may be a relative path. See the D-Bus specification for more details. -} clearDBusNodeInfoPath , #if ENABLE_OVERLOADING dBusNodeInfo_path , #endif getDBusNodeInfoPath , setDBusNodeInfoPath , -- ** refCount #attr:refCount# {- | The reference count or -1 if statically allocated. -} #if ENABLE_OVERLOADING dBusNodeInfo_refCount , #endif getDBusNodeInfoRefCount , setDBusNodeInfoRefCount , ) 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.GLib.Structs.String as GLib.String import {-# SOURCE #-} qualified GI.Gio.Structs.DBusAnnotationInfo as Gio.DBusAnnotationInfo import {-# SOURCE #-} qualified GI.Gio.Structs.DBusInterfaceInfo as Gio.DBusInterfaceInfo -- | Memory-managed wrapper type. newtype DBusNodeInfo = DBusNodeInfo (ManagedPtr DBusNodeInfo) foreign import ccall "g_dbus_node_info_get_type" c_g_dbus_node_info_get_type :: IO GType instance BoxedObject DBusNodeInfo where boxedType _ = c_g_dbus_node_info_get_type -- | Construct a `DBusNodeInfo` struct initialized to zero. newZeroDBusNodeInfo :: MonadIO m => m DBusNodeInfo newZeroDBusNodeInfo = liftIO $ callocBoxedBytes 40 >>= wrapBoxed DBusNodeInfo instance tag ~ 'AttrSet => Constructible DBusNodeInfo tag where new _ attrs = do o <- newZeroDBusNodeInfo GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `DBusNodeInfo`. noDBusNodeInfo :: Maybe DBusNodeInfo noDBusNodeInfo = Nothing {- | Get the value of the “@ref_count@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' dBusNodeInfo #refCount @ -} getDBusNodeInfoRefCount :: MonadIO m => DBusNodeInfo -> m Int32 getDBusNodeInfoRefCount s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int32 return val {- | Set the value of the “@ref_count@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' dBusNodeInfo [ #refCount 'Data.GI.Base.Attributes.:=' value ] @ -} setDBusNodeInfoRefCount :: MonadIO m => DBusNodeInfo -> Int32 -> m () setDBusNodeInfoRefCount s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int32) #if ENABLE_OVERLOADING data DBusNodeInfoRefCountFieldInfo instance AttrInfo DBusNodeInfoRefCountFieldInfo where type AttrAllowedOps DBusNodeInfoRefCountFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint DBusNodeInfoRefCountFieldInfo = (~) Int32 type AttrBaseTypeConstraint DBusNodeInfoRefCountFieldInfo = (~) DBusNodeInfo type AttrGetType DBusNodeInfoRefCountFieldInfo = Int32 type AttrLabel DBusNodeInfoRefCountFieldInfo = "ref_count" type AttrOrigin DBusNodeInfoRefCountFieldInfo = DBusNodeInfo attrGet _ = getDBusNodeInfoRefCount attrSet _ = setDBusNodeInfoRefCount attrConstruct = undefined attrClear _ = undefined dBusNodeInfo_refCount :: AttrLabelProxy "refCount" dBusNodeInfo_refCount = AttrLabelProxy #endif {- | Get the value of the “@path@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' dBusNodeInfo #path @ -} getDBusNodeInfoPath :: MonadIO m => DBusNodeInfo -> m (Maybe T.Text) getDBusNodeInfoPath s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO CString result <- SP.convertIfNonNull val $ \val' -> do val'' <- cstringToText val' return val'' return result {- | Set the value of the “@path@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' dBusNodeInfo [ #path 'Data.GI.Base.Attributes.:=' value ] @ -} setDBusNodeInfoPath :: MonadIO m => DBusNodeInfo -> CString -> m () setDBusNodeInfoPath s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (val :: CString) {- | Set the value of the “@path@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #path @ -} clearDBusNodeInfoPath :: MonadIO m => DBusNodeInfo -> m () clearDBusNodeInfoPath s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (FP.nullPtr :: CString) #if ENABLE_OVERLOADING data DBusNodeInfoPathFieldInfo instance AttrInfo DBusNodeInfoPathFieldInfo where type AttrAllowedOps DBusNodeInfoPathFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint DBusNodeInfoPathFieldInfo = (~) CString type AttrBaseTypeConstraint DBusNodeInfoPathFieldInfo = (~) DBusNodeInfo type AttrGetType DBusNodeInfoPathFieldInfo = Maybe T.Text type AttrLabel DBusNodeInfoPathFieldInfo = "path" type AttrOrigin DBusNodeInfoPathFieldInfo = DBusNodeInfo attrGet _ = getDBusNodeInfoPath attrSet _ = setDBusNodeInfoPath attrConstruct = undefined attrClear _ = clearDBusNodeInfoPath dBusNodeInfo_path :: AttrLabelProxy "path" dBusNodeInfo_path = AttrLabelProxy #endif {- | Get the value of the “@interfaces@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' dBusNodeInfo #interfaces @ -} getDBusNodeInfoInterfaces :: MonadIO m => DBusNodeInfo -> m (Maybe [Gio.DBusInterfaceInfo.DBusInterfaceInfo]) getDBusNodeInfoInterfaces s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO (Ptr (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo)) result <- SP.convertIfNonNull val $ \val' -> do val'' <- unpackZeroTerminatedPtrArray val' val''' <- mapM (newBoxed Gio.DBusInterfaceInfo.DBusInterfaceInfo) val'' return val''' return result {- | Set the value of the “@interfaces@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' dBusNodeInfo [ #interfaces 'Data.GI.Base.Attributes.:=' value ] @ -} setDBusNodeInfoInterfaces :: MonadIO m => DBusNodeInfo -> Ptr (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo) -> m () setDBusNodeInfoInterfaces s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (val :: Ptr (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo)) {- | Set the value of the “@interfaces@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #interfaces @ -} clearDBusNodeInfoInterfaces :: MonadIO m => DBusNodeInfo -> m () clearDBusNodeInfoInterfaces s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo)) #if ENABLE_OVERLOADING data DBusNodeInfoInterfacesFieldInfo instance AttrInfo DBusNodeInfoInterfacesFieldInfo where type AttrAllowedOps DBusNodeInfoInterfacesFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint DBusNodeInfoInterfacesFieldInfo = (~) (Ptr (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo)) type AttrBaseTypeConstraint DBusNodeInfoInterfacesFieldInfo = (~) DBusNodeInfo type AttrGetType DBusNodeInfoInterfacesFieldInfo = Maybe [Gio.DBusInterfaceInfo.DBusInterfaceInfo] type AttrLabel DBusNodeInfoInterfacesFieldInfo = "interfaces" type AttrOrigin DBusNodeInfoInterfacesFieldInfo = DBusNodeInfo attrGet _ = getDBusNodeInfoInterfaces attrSet _ = setDBusNodeInfoInterfaces attrConstruct = undefined attrClear _ = clearDBusNodeInfoInterfaces dBusNodeInfo_interfaces :: AttrLabelProxy "interfaces" dBusNodeInfo_interfaces = AttrLabelProxy #endif {- | Get the value of the “@nodes@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' dBusNodeInfo #nodes @ -} getDBusNodeInfoNodes :: MonadIO m => DBusNodeInfo -> m (Maybe [DBusNodeInfo]) getDBusNodeInfoNodes s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO (Ptr (Ptr DBusNodeInfo)) result <- SP.convertIfNonNull val $ \val' -> do val'' <- unpackZeroTerminatedPtrArray val' val''' <- mapM (newBoxed DBusNodeInfo) val'' return val''' return result {- | Set the value of the “@nodes@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' dBusNodeInfo [ #nodes 'Data.GI.Base.Attributes.:=' value ] @ -} setDBusNodeInfoNodes :: MonadIO m => DBusNodeInfo -> Ptr (Ptr DBusNodeInfo) -> m () setDBusNodeInfoNodes s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (val :: Ptr (Ptr DBusNodeInfo)) {- | Set the value of the “@nodes@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #nodes @ -} clearDBusNodeInfoNodes :: MonadIO m => DBusNodeInfo -> m () clearDBusNodeInfoNodes s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (FP.nullPtr :: Ptr (Ptr DBusNodeInfo)) #if ENABLE_OVERLOADING data DBusNodeInfoNodesFieldInfo instance AttrInfo DBusNodeInfoNodesFieldInfo where type AttrAllowedOps DBusNodeInfoNodesFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint DBusNodeInfoNodesFieldInfo = (~) (Ptr (Ptr DBusNodeInfo)) type AttrBaseTypeConstraint DBusNodeInfoNodesFieldInfo = (~) DBusNodeInfo type AttrGetType DBusNodeInfoNodesFieldInfo = Maybe [DBusNodeInfo] type AttrLabel DBusNodeInfoNodesFieldInfo = "nodes" type AttrOrigin DBusNodeInfoNodesFieldInfo = DBusNodeInfo attrGet _ = getDBusNodeInfoNodes attrSet _ = setDBusNodeInfoNodes attrConstruct = undefined attrClear _ = clearDBusNodeInfoNodes dBusNodeInfo_nodes :: AttrLabelProxy "nodes" dBusNodeInfo_nodes = AttrLabelProxy #endif {- | Get the value of the “@annotations@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' dBusNodeInfo #annotations @ -} getDBusNodeInfoAnnotations :: MonadIO m => DBusNodeInfo -> m (Maybe [Gio.DBusAnnotationInfo.DBusAnnotationInfo]) getDBusNodeInfoAnnotations s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO (Ptr (Ptr Gio.DBusAnnotationInfo.DBusAnnotationInfo)) result <- SP.convertIfNonNull val $ \val' -> do val'' <- unpackZeroTerminatedPtrArray val' val''' <- mapM (newBoxed Gio.DBusAnnotationInfo.DBusAnnotationInfo) val'' return val''' return result {- | Set the value of the “@annotations@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' dBusNodeInfo [ #annotations 'Data.GI.Base.Attributes.:=' value ] @ -} setDBusNodeInfoAnnotations :: MonadIO m => DBusNodeInfo -> Ptr (Ptr Gio.DBusAnnotationInfo.DBusAnnotationInfo) -> m () setDBusNodeInfoAnnotations s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (val :: Ptr (Ptr Gio.DBusAnnotationInfo.DBusAnnotationInfo)) {- | Set the value of the “@annotations@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #annotations @ -} clearDBusNodeInfoAnnotations :: MonadIO m => DBusNodeInfo -> m () clearDBusNodeInfoAnnotations s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (FP.nullPtr :: Ptr (Ptr Gio.DBusAnnotationInfo.DBusAnnotationInfo)) #if ENABLE_OVERLOADING data DBusNodeInfoAnnotationsFieldInfo instance AttrInfo DBusNodeInfoAnnotationsFieldInfo where type AttrAllowedOps DBusNodeInfoAnnotationsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint DBusNodeInfoAnnotationsFieldInfo = (~) (Ptr (Ptr Gio.DBusAnnotationInfo.DBusAnnotationInfo)) type AttrBaseTypeConstraint DBusNodeInfoAnnotationsFieldInfo = (~) DBusNodeInfo type AttrGetType DBusNodeInfoAnnotationsFieldInfo = Maybe [Gio.DBusAnnotationInfo.DBusAnnotationInfo] type AttrLabel DBusNodeInfoAnnotationsFieldInfo = "annotations" type AttrOrigin DBusNodeInfoAnnotationsFieldInfo = DBusNodeInfo attrGet _ = getDBusNodeInfoAnnotations attrSet _ = setDBusNodeInfoAnnotations attrConstruct = undefined attrClear _ = clearDBusNodeInfoAnnotations dBusNodeInfo_annotations :: AttrLabelProxy "annotations" dBusNodeInfo_annotations = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList DBusNodeInfo type instance O.AttributeList DBusNodeInfo = DBusNodeInfoAttributeList type DBusNodeInfoAttributeList = ('[ '("refCount", DBusNodeInfoRefCountFieldInfo), '("path", DBusNodeInfoPathFieldInfo), '("interfaces", DBusNodeInfoInterfacesFieldInfo), '("nodes", DBusNodeInfoNodesFieldInfo), '("annotations", DBusNodeInfoAnnotationsFieldInfo)] :: [(Symbol, *)]) #endif -- method DBusNodeInfo::new_for_xml -- method type : Constructor -- Args : [Arg {argCName = "xml_data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Valid D-Bus introspection XML.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"})) -- throws : True -- Skip return : False foreign import ccall "g_dbus_node_info_new_for_xml" g_dbus_node_info_new_for_xml :: CString -> -- xml_data : TBasicType TUTF8 Ptr (Ptr GError) -> -- error IO (Ptr DBusNodeInfo) {- | Parses /@xmlData@/ and returns a 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo' representing the data. The introspection XML must contain exactly one top-level \ element. Note that this routine is using a [GMarkup][glib-Simple-XML-Subset-Parser.description]-based parser that only accepts a subset of valid XML documents. /Since: 2.26/ -} dBusNodeInfoNewForXml :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@xmlData@/: Valid D-Bus introspection XML. -} -> m DBusNodeInfo {- ^ __Returns:__ A 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo' structure or 'Nothing' if /@error@/ is set. Free with 'GI.Gio.Structs.DBusNodeInfo.dBusNodeInfoUnref'. /(Can throw 'Data.GI.Base.GError.GError')/ -} dBusNodeInfoNewForXml xmlData = liftIO $ do xmlData' <- textToCString xmlData onException (do result <- propagateGError $ g_dbus_node_info_new_for_xml xmlData' checkUnexpectedReturnNULL "dBusNodeInfoNewForXml" result result' <- (wrapBoxed DBusNodeInfo) result freeMem xmlData' return result' ) (do freeMem xmlData' ) #if ENABLE_OVERLOADING #endif -- method DBusNodeInfo::generate_xml -- method type : OrdinaryMethod -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusNodeInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "indent", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Indentation level.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_builder", argType = TInterface (Name {namespace = "GLib", name = "String"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GString to to append XML data to.", 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_node_info_generate_xml" g_dbus_node_info_generate_xml :: Ptr DBusNodeInfo -> -- info : TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}) Word32 -> -- indent : TBasicType TUInt Ptr GLib.String.String -> -- string_builder : TInterface (Name {namespace = "GLib", name = "String"}) IO () {- | Appends an XML representation of /@info@/ (and its children) to /@stringBuilder@/. This function is typically used for generating introspection XML documents at run-time for handling the @org.freedesktop.DBus.Introspectable.Introspect@ method. /Since: 2.26/ -} dBusNodeInfoGenerateXml :: (B.CallStack.HasCallStack, MonadIO m) => DBusNodeInfo {- ^ /@info@/: A 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo'. -} -> Word32 {- ^ /@indent@/: Indentation level. -} -> GLib.String.String {- ^ /@stringBuilder@/: A 'GI.GLib.Structs.String.String' to to append XML data to. -} -> m () dBusNodeInfoGenerateXml info indent stringBuilder = liftIO $ do info' <- unsafeManagedPtrGetPtr info stringBuilder' <- unsafeManagedPtrGetPtr stringBuilder g_dbus_node_info_generate_xml info' indent stringBuilder' touchManagedPtr info touchManagedPtr stringBuilder return () #if ENABLE_OVERLOADING data DBusNodeInfoGenerateXmlMethodInfo instance (signature ~ (Word32 -> GLib.String.String -> m ()), MonadIO m) => O.MethodInfo DBusNodeInfoGenerateXmlMethodInfo DBusNodeInfo signature where overloadedMethod _ = dBusNodeInfoGenerateXml #endif -- method DBusNodeInfo::lookup_interface -- method type : OrdinaryMethod -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusNodeInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A D-Bus interface name.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusInterfaceInfo"})) -- throws : False -- Skip return : False foreign import ccall "g_dbus_node_info_lookup_interface" g_dbus_node_info_lookup_interface :: Ptr DBusNodeInfo -> -- info : TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}) CString -> -- name : TBasicType TUTF8 IO (Ptr Gio.DBusInterfaceInfo.DBusInterfaceInfo) {- | Looks up information about an interface. The cost of this function is O(n) in number of interfaces. /Since: 2.26/ -} dBusNodeInfoLookupInterface :: (B.CallStack.HasCallStack, MonadIO m) => DBusNodeInfo {- ^ /@info@/: A 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo'. -} -> T.Text {- ^ /@name@/: A D-Bus interface name. -} -> m Gio.DBusInterfaceInfo.DBusInterfaceInfo {- ^ __Returns:__ A 'GI.Gio.Structs.DBusInterfaceInfo.DBusInterfaceInfo' or 'Nothing' if not found. Do not free, it is owned by /@info@/. -} dBusNodeInfoLookupInterface info name = liftIO $ do info' <- unsafeManagedPtrGetPtr info name' <- textToCString name result <- g_dbus_node_info_lookup_interface info' name' checkUnexpectedReturnNULL "dBusNodeInfoLookupInterface" result result' <- (newBoxed Gio.DBusInterfaceInfo.DBusInterfaceInfo) result touchManagedPtr info freeMem name' return result' #if ENABLE_OVERLOADING data DBusNodeInfoLookupInterfaceMethodInfo instance (signature ~ (T.Text -> m Gio.DBusInterfaceInfo.DBusInterfaceInfo), MonadIO m) => O.MethodInfo DBusNodeInfoLookupInterfaceMethodInfo DBusNodeInfo signature where overloadedMethod _ = dBusNodeInfoLookupInterface #endif -- method DBusNodeInfo::ref -- method type : OrdinaryMethod -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusNodeInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"})) -- throws : False -- Skip return : False foreign import ccall "g_dbus_node_info_ref" g_dbus_node_info_ref :: Ptr DBusNodeInfo -> -- info : TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}) IO (Ptr DBusNodeInfo) {- | If /@info@/ is statically allocated does nothing. Otherwise increases the reference count. /Since: 2.26/ -} dBusNodeInfoRef :: (B.CallStack.HasCallStack, MonadIO m) => DBusNodeInfo {- ^ /@info@/: A 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo' -} -> m DBusNodeInfo {- ^ __Returns:__ The same /@info@/. -} dBusNodeInfoRef info = liftIO $ do info' <- unsafeManagedPtrGetPtr info result <- g_dbus_node_info_ref info' checkUnexpectedReturnNULL "dBusNodeInfoRef" result result' <- (wrapBoxed DBusNodeInfo) result touchManagedPtr info return result' #if ENABLE_OVERLOADING data DBusNodeInfoRefMethodInfo instance (signature ~ (m DBusNodeInfo), MonadIO m) => O.MethodInfo DBusNodeInfoRefMethodInfo DBusNodeInfo signature where overloadedMethod _ = dBusNodeInfoRef #endif -- method DBusNodeInfo::unref -- method type : OrdinaryMethod -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusNodeInfo.", 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_node_info_unref" g_dbus_node_info_unref :: Ptr DBusNodeInfo -> -- info : TInterface (Name {namespace = "Gio", name = "DBusNodeInfo"}) IO () {- | If /@info@/ is statically allocated, does nothing. Otherwise decreases the reference count of /@info@/. When its reference count drops to 0, the memory used is freed. /Since: 2.26/ -} dBusNodeInfoUnref :: (B.CallStack.HasCallStack, MonadIO m) => DBusNodeInfo {- ^ /@info@/: A 'GI.Gio.Structs.DBusNodeInfo.DBusNodeInfo'. -} -> m () dBusNodeInfoUnref info = liftIO $ do info' <- unsafeManagedPtrGetPtr info g_dbus_node_info_unref info' touchManagedPtr info return () #if ENABLE_OVERLOADING data DBusNodeInfoUnrefMethodInfo instance (signature ~ (m ()), MonadIO m) => O.MethodInfo DBusNodeInfoUnrefMethodInfo DBusNodeInfo signature where overloadedMethod _ = dBusNodeInfoUnref #endif #if ENABLE_OVERLOADING type family ResolveDBusNodeInfoMethod (t :: Symbol) (o :: *) :: * where ResolveDBusNodeInfoMethod "generateXml" o = DBusNodeInfoGenerateXmlMethodInfo ResolveDBusNodeInfoMethod "lookupInterface" o = DBusNodeInfoLookupInterfaceMethodInfo ResolveDBusNodeInfoMethod "ref" o = DBusNodeInfoRefMethodInfo ResolveDBusNodeInfoMethod "unref" o = DBusNodeInfoUnrefMethodInfo ResolveDBusNodeInfoMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveDBusNodeInfoMethod t DBusNodeInfo, O.MethodInfo info DBusNodeInfo p) => OL.IsLabel t (DBusNodeInfo -> 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