packages feed

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

-- * Exported types
    TlsFileDatabase(..)                     ,
    noTlsFileDatabase                       ,
    TlsFileDatabaseK                        ,
    toTlsFileDatabase                       ,


 -- * Methods
-- ** tlsFileDatabaseNew
    tlsFileDatabaseNew                      ,




 -- * Properties
-- ** Anchors
    TlsFileDatabaseAnchorsPropertyInfo      ,
    constructTlsFileDatabaseAnchors         ,
    getTlsFileDatabaseAnchors               ,
    setTlsFileDatabaseAnchors               ,




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

newtype TlsFileDatabase = TlsFileDatabase (ForeignPtr TlsFileDatabase)
noTlsFileDatabase :: Maybe TlsFileDatabase
noTlsFileDatabase = Nothing

type family ResolveTlsFileDatabaseMethod (t :: Symbol) (o :: *) :: * where
    ResolveTlsFileDatabaseMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveTlsFileDatabaseMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveTlsFileDatabaseMethod "createCertificateHandle" o = TlsDatabaseCreateCertificateHandleMethodInfo
    ResolveTlsFileDatabaseMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveTlsFileDatabaseMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveTlsFileDatabaseMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateForHandle" o = TlsDatabaseLookupCertificateForHandleMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateForHandleAsync" o = TlsDatabaseLookupCertificateForHandleAsyncMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateForHandleFinish" o = TlsDatabaseLookupCertificateForHandleFinishMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateIssuer" o = TlsDatabaseLookupCertificateIssuerMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateIssuerAsync" o = TlsDatabaseLookupCertificateIssuerAsyncMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificateIssuerFinish" o = TlsDatabaseLookupCertificateIssuerFinishMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificatesIssuedBy" o = TlsDatabaseLookupCertificatesIssuedByMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificatesIssuedByAsync" o = TlsDatabaseLookupCertificatesIssuedByAsyncMethodInfo
    ResolveTlsFileDatabaseMethod "lookupCertificatesIssuedByFinish" o = TlsDatabaseLookupCertificatesIssuedByFinishMethodInfo
    ResolveTlsFileDatabaseMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveTlsFileDatabaseMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveTlsFileDatabaseMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveTlsFileDatabaseMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveTlsFileDatabaseMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveTlsFileDatabaseMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveTlsFileDatabaseMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveTlsFileDatabaseMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveTlsFileDatabaseMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveTlsFileDatabaseMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveTlsFileDatabaseMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveTlsFileDatabaseMethod "verifyChain" o = TlsDatabaseVerifyChainMethodInfo
    ResolveTlsFileDatabaseMethod "verifyChainAsync" o = TlsDatabaseVerifyChainAsyncMethodInfo
    ResolveTlsFileDatabaseMethod "verifyChainFinish" o = TlsDatabaseVerifyChainFinishMethodInfo
    ResolveTlsFileDatabaseMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveTlsFileDatabaseMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveTlsFileDatabaseMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveTlsFileDatabaseMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveTlsFileDatabaseMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveTlsFileDatabaseMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveTlsFileDatabaseMethod l o = MethodResolutionFailed l o

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

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

-- VVV Prop "anchors"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getTlsFileDatabaseAnchors :: (MonadIO m, TlsFileDatabaseK o) => o -> m T.Text
getTlsFileDatabaseAnchors obj = liftIO $ getObjectPropertyString obj "anchors"

setTlsFileDatabaseAnchors :: (MonadIO m, TlsFileDatabaseK o) => o -> T.Text -> m ()
setTlsFileDatabaseAnchors obj val = liftIO $ setObjectPropertyString obj "anchors" val

constructTlsFileDatabaseAnchors :: T.Text -> IO ([Char], GValue)
constructTlsFileDatabaseAnchors val = constructObjectPropertyString "anchors" val

data TlsFileDatabaseAnchorsPropertyInfo
instance AttrInfo TlsFileDatabaseAnchorsPropertyInfo where
    type AttrAllowedOps TlsFileDatabaseAnchorsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TlsFileDatabaseAnchorsPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TlsFileDatabaseAnchorsPropertyInfo = TlsFileDatabaseK
    type AttrGetType TlsFileDatabaseAnchorsPropertyInfo = T.Text
    type AttrLabel TlsFileDatabaseAnchorsPropertyInfo = "anchors"
    attrGet _ = getTlsFileDatabaseAnchors
    attrSet _ = setTlsFileDatabaseAnchors
    attrConstruct _ = constructTlsFileDatabaseAnchors

type instance AttributeList TlsFileDatabase = TlsFileDatabaseAttributeList
type TlsFileDatabaseAttributeList = ('[ '("anchors", TlsFileDatabaseAnchorsPropertyInfo)] :: [(Symbol, *)])

type instance SignalList TlsFileDatabase = TlsFileDatabaseSignalList
type TlsFileDatabaseSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

foreign import ccall "g_tls_file_database_get_type"
    c_g_tls_file_database_get_type :: IO GType

type instance ParentTypes TlsFileDatabase = TlsFileDatabaseParentTypes
type TlsFileDatabaseParentTypes = '[TlsDatabase, GObject.Object]

instance GObject TlsFileDatabase where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_tls_file_database_get_type
    

class GObject o => TlsFileDatabaseK o
instance (GObject o, IsDescendantOf TlsFileDatabase o) => TlsFileDatabaseK o

toTlsFileDatabase :: TlsFileDatabaseK o => o -> IO TlsFileDatabase
toTlsFileDatabase = unsafeCastTo TlsFileDatabase

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

foreign import ccall "g_tls_file_database_new" g_tls_file_database_new :: 
    CString ->                              -- anchors : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr TlsFileDatabase)


tlsFileDatabaseNew ::
    (MonadIO m) =>
    T.Text                                  -- anchors
    -> m TlsFileDatabase                    -- result
tlsFileDatabaseNew anchors = liftIO $ do
    anchors' <- textToCString anchors
    onException (do
        result <- propagateGError $ g_tls_file_database_new anchors'
        checkUnexpectedReturnNULL "g_tls_file_database_new" result
        result' <- (wrapObject TlsFileDatabase) result
        freeMem anchors'
        return result'
     ) (do
        freeMem anchors'
     )