packages feed

gi-gio-0.2.46.13: GI/Gio/Structs/FileAttributeMatcher.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)

Determines if a string matches a file attribute.
-}

module GI.Gio.Structs.FileAttributeMatcher
    ( 

-- * Exported types
    FileAttributeMatcher(..)                ,
    noFileAttributeMatcher                  ,


 -- * Methods
-- ** fileAttributeMatcherEnumerateNamespace
    FileAttributeMatcherEnumerateNamespaceMethodInfo,
    fileAttributeMatcherEnumerateNamespace  ,


-- ** fileAttributeMatcherEnumerateNext
    FileAttributeMatcherEnumerateNextMethodInfo,
    fileAttributeMatcherEnumerateNext       ,


-- ** fileAttributeMatcherMatches
    FileAttributeMatcherMatchesMethodInfo   ,
    fileAttributeMatcherMatches             ,


-- ** fileAttributeMatcherMatchesOnly
    FileAttributeMatcherMatchesOnlyMethodInfo,
    fileAttributeMatcherMatchesOnly         ,


-- ** fileAttributeMatcherNew
    fileAttributeMatcherNew                 ,


-- ** fileAttributeMatcherRef
    FileAttributeMatcherRefMethodInfo       ,
    fileAttributeMatcherRef                 ,


-- ** fileAttributeMatcherSubtract
    FileAttributeMatcherSubtractMethodInfo  ,
    fileAttributeMatcherSubtract            ,


-- ** fileAttributeMatcherToString
    FileAttributeMatcherToStringMethodInfo  ,
    fileAttributeMatcherToString            ,


-- ** fileAttributeMatcherUnref
    FileAttributeMatcherUnrefMethodInfo     ,
    fileAttributeMatcherUnref               ,




    ) 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

newtype FileAttributeMatcher = FileAttributeMatcher (ForeignPtr FileAttributeMatcher)
foreign import ccall "g_file_attribute_matcher_get_type" c_g_file_attribute_matcher_get_type :: 
    IO GType

instance BoxedObject FileAttributeMatcher where
    boxedType _ = c_g_file_attribute_matcher_get_type

noFileAttributeMatcher :: Maybe FileAttributeMatcher
noFileAttributeMatcher = Nothing

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

foreign import ccall "g_file_attribute_matcher_new" g_file_attribute_matcher_new :: 
    CString ->                              -- attributes : TBasicType TUTF8
    IO (Ptr FileAttributeMatcher)


fileAttributeMatcherNew ::
    (MonadIO m) =>
    T.Text                                  -- attributes
    -> m FileAttributeMatcher               -- result
fileAttributeMatcherNew attributes = liftIO $ do
    attributes' <- textToCString attributes
    result <- g_file_attribute_matcher_new attributes'
    checkUnexpectedReturnNULL "g_file_attribute_matcher_new" result
    result' <- (wrapBoxed FileAttributeMatcher) result
    freeMem attributes'
    return result'

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

foreign import ccall "g_file_attribute_matcher_enumerate_namespace" g_file_attribute_matcher_enumerate_namespace :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    CString ->                              -- ns : TBasicType TUTF8
    IO CInt


fileAttributeMatcherEnumerateNamespace ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> T.Text                               -- ns
    -> m Bool                               -- result
fileAttributeMatcherEnumerateNamespace _obj ns = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    ns' <- textToCString ns
    result <- g_file_attribute_matcher_enumerate_namespace _obj' ns'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem ns'
    return result'

data FileAttributeMatcherEnumerateNamespaceMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo FileAttributeMatcherEnumerateNamespaceMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherEnumerateNamespace

-- method FileAttributeMatcher::enumerate_next
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "FileAttributeMatcher", 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_file_attribute_matcher_enumerate_next" g_file_attribute_matcher_enumerate_next :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    IO CString


fileAttributeMatcherEnumerateNext ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> m T.Text                             -- result
fileAttributeMatcherEnumerateNext _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- g_file_attribute_matcher_enumerate_next _obj'
    checkUnexpectedReturnNULL "g_file_attribute_matcher_enumerate_next" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

data FileAttributeMatcherEnumerateNextMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo FileAttributeMatcherEnumerateNextMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherEnumerateNext

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

foreign import ccall "g_file_attribute_matcher_matches" g_file_attribute_matcher_matches :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    CString ->                              -- attribute : TBasicType TUTF8
    IO CInt


fileAttributeMatcherMatches ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> T.Text                               -- attribute
    -> m Bool                               -- result
fileAttributeMatcherMatches _obj attribute = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    attribute' <- textToCString attribute
    result <- g_file_attribute_matcher_matches _obj' attribute'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem attribute'
    return result'

data FileAttributeMatcherMatchesMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo FileAttributeMatcherMatchesMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherMatches

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

foreign import ccall "g_file_attribute_matcher_matches_only" g_file_attribute_matcher_matches_only :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    CString ->                              -- attribute : TBasicType TUTF8
    IO CInt


fileAttributeMatcherMatchesOnly ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> T.Text                               -- attribute
    -> m Bool                               -- result
fileAttributeMatcherMatchesOnly _obj attribute = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    attribute' <- textToCString attribute
    result <- g_file_attribute_matcher_matches_only _obj' attribute'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem attribute'
    return result'

data FileAttributeMatcherMatchesOnlyMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo FileAttributeMatcherMatchesOnlyMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherMatchesOnly

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

foreign import ccall "g_file_attribute_matcher_ref" g_file_attribute_matcher_ref :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    IO (Ptr FileAttributeMatcher)


fileAttributeMatcherRef ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> m FileAttributeMatcher               -- result
fileAttributeMatcherRef _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- g_file_attribute_matcher_ref _obj'
    checkUnexpectedReturnNULL "g_file_attribute_matcher_ref" result
    result' <- (wrapBoxed FileAttributeMatcher) result
    touchManagedPtr _obj
    return result'

data FileAttributeMatcherRefMethodInfo
instance (signature ~ (m FileAttributeMatcher), MonadIO m) => MethodInfo FileAttributeMatcherRefMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherRef

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

foreign import ccall "g_file_attribute_matcher_subtract" g_file_attribute_matcher_subtract :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    Ptr FileAttributeMatcher ->             -- subtract : TInterface "Gio" "FileAttributeMatcher"
    IO (Ptr FileAttributeMatcher)


fileAttributeMatcherSubtract ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> FileAttributeMatcher                 -- subtract
    -> m FileAttributeMatcher               -- result
fileAttributeMatcherSubtract _obj subtract = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let subtract' = unsafeManagedPtrGetPtr subtract
    result <- g_file_attribute_matcher_subtract _obj' subtract'
    checkUnexpectedReturnNULL "g_file_attribute_matcher_subtract" result
    result' <- (wrapBoxed FileAttributeMatcher) result
    touchManagedPtr _obj
    touchManagedPtr subtract
    return result'

data FileAttributeMatcherSubtractMethodInfo
instance (signature ~ (FileAttributeMatcher -> m FileAttributeMatcher), MonadIO m) => MethodInfo FileAttributeMatcherSubtractMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherSubtract

-- method FileAttributeMatcher::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "FileAttributeMatcher", 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_file_attribute_matcher_to_string" g_file_attribute_matcher_to_string :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    IO CString


fileAttributeMatcherToString ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> m T.Text                             -- result
fileAttributeMatcherToString _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- g_file_attribute_matcher_to_string _obj'
    checkUnexpectedReturnNULL "g_file_attribute_matcher_to_string" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

data FileAttributeMatcherToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo FileAttributeMatcherToStringMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherToString

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

foreign import ccall "g_file_attribute_matcher_unref" g_file_attribute_matcher_unref :: 
    Ptr FileAttributeMatcher ->             -- _obj : TInterface "Gio" "FileAttributeMatcher"
    IO ()


fileAttributeMatcherUnref ::
    (MonadIO m) =>
    FileAttributeMatcher                    -- _obj
    -> m ()                                 -- result
fileAttributeMatcherUnref _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    g_file_attribute_matcher_unref _obj'
    touchManagedPtr _obj
    return ()

data FileAttributeMatcherUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo FileAttributeMatcherUnrefMethodInfo FileAttributeMatcher signature where
    overloadedMethod _ = fileAttributeMatcherUnref

type family ResolveFileAttributeMatcherMethod (t :: Symbol) (o :: *) :: * where
    ResolveFileAttributeMatcherMethod "enumerateNamespace" o = FileAttributeMatcherEnumerateNamespaceMethodInfo
    ResolveFileAttributeMatcherMethod "enumerateNext" o = FileAttributeMatcherEnumerateNextMethodInfo
    ResolveFileAttributeMatcherMethod "matches" o = FileAttributeMatcherMatchesMethodInfo
    ResolveFileAttributeMatcherMethod "matchesOnly" o = FileAttributeMatcherMatchesOnlyMethodInfo
    ResolveFileAttributeMatcherMethod "ref" o = FileAttributeMatcherRefMethodInfo
    ResolveFileAttributeMatcherMethod "subtract" o = FileAttributeMatcherSubtractMethodInfo
    ResolveFileAttributeMatcherMethod "toString" o = FileAttributeMatcherToStringMethodInfo
    ResolveFileAttributeMatcherMethod "unref" o = FileAttributeMatcherUnrefMethodInfo
    ResolveFileAttributeMatcherMethod l o = MethodResolutionFailed l o

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

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