{- | 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 xMLRPCParamsFree , -- ** xMLRPCParamsParse 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 {argName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 () xMLRPCParamsFree _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj soup_xmlrpc_params_free _obj' touchManagedPtr _obj return () -- method XMLRPCParams::parse -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 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 )