gi-soup-0.2.52.13: GI/Soup/Structs/XMLRPCParams.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)
Opaque structure containing XML-RPC methodCall parameter values.
Can be parsed using soup_xmlrpc_params_parse() and freed with
soup_xmlrpc_params_free().
-}
module GI.Soup.Structs.XMLRPCParams
(
-- * Exported types
XMLRPCParams(..) ,
noXMLRPCParams ,
-- * Methods
-- ** xMLRPCParamsFree
XMLRPCParamsFreeMethodInfo ,
xMLRPCParamsFree ,
-- ** xMLRPCParamsParse
XMLRPCParamsParseMethodInfo ,
xMLRPCParamsParse ,
) 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.Soup.Types
import GI.Soup.Callbacks
newtype XMLRPCParams = XMLRPCParams (ForeignPtr XMLRPCParams)
noXMLRPCParams :: Maybe XMLRPCParams
noXMLRPCParams = Nothing
-- method XMLRPCParams::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "XMLRPCParams", 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 "soup_xmlrpc_params_free" soup_xmlrpc_params_free ::
Ptr XMLRPCParams -> -- _obj : TInterface "Soup" "XMLRPCParams"
IO ()
xMLRPCParamsFree ::
(MonadIO m) =>
XMLRPCParams -- _obj
-> m () -- result
xMLRPCParamsFree _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
soup_xmlrpc_params_free _obj'
touchManagedPtr _obj
return ()
data XMLRPCParamsFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo XMLRPCParamsFreeMethodInfo XMLRPCParams signature where
overloadedMethod _ = xMLRPCParamsFree
-- method XMLRPCParams::parse
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TVariant
-- throws : True
-- Skip return : False
foreign import ccall "soup_xmlrpc_params_parse" soup_xmlrpc_params_parse ::
Ptr XMLRPCParams -> -- _obj : TInterface "Soup" "XMLRPCParams"
CString -> -- signature : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO (Ptr GVariant)
xMLRPCParamsParse ::
(MonadIO m) =>
XMLRPCParams -- _obj
-> Maybe (T.Text) -- signature
-> m GVariant -- result
xMLRPCParamsParse _obj signature = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeSignature <- case signature of
Nothing -> return nullPtr
Just jSignature -> do
jSignature' <- textToCString jSignature
return jSignature'
onException (do
result <- propagateGError $ soup_xmlrpc_params_parse _obj' maybeSignature
checkUnexpectedReturnNULL "soup_xmlrpc_params_parse" result
result' <- wrapGVariantPtr result
touchManagedPtr _obj
freeMem maybeSignature
return result'
) (do
freeMem maybeSignature
)
data XMLRPCParamsParseMethodInfo
instance (signature ~ (Maybe (T.Text) -> m GVariant), MonadIO m) => MethodInfo XMLRPCParamsParseMethodInfo XMLRPCParams signature where
overloadedMethod _ = xMLRPCParamsParse
type family ResolveXMLRPCParamsMethod (t :: Symbol) (o :: *) :: * where
ResolveXMLRPCParamsMethod "free" o = XMLRPCParamsFreeMethodInfo
ResolveXMLRPCParamsMethod "parse" o = XMLRPCParamsParseMethodInfo
ResolveXMLRPCParamsMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveXMLRPCParamsMethod t XMLRPCParams, MethodInfo info XMLRPCParams p) => IsLabelProxy t (XMLRPCParams -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveXMLRPCParamsMethod t XMLRPCParams, MethodInfo info XMLRPCParams p) => IsLabel t (XMLRPCParams -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif