#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Soup.Structs.XMLRPCParams
(
XMLRPCParams(..) ,
noXMLRPCParams ,
#if ENABLE_OVERLOADING
XMLRPCParamsFreeMethodInfo ,
#endif
xMLRPCParamsFree ,
#if ENABLE_OVERLOADING
XMLRPCParamsParseMethodInfo ,
#endif
xMLRPCParamsParse ,
) 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.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
newtype XMLRPCParams = XMLRPCParams (ManagedPtr XMLRPCParams)
instance WrappedPtr XMLRPCParams where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noXMLRPCParams :: Maybe XMLRPCParams
noXMLRPCParams = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList XMLRPCParams
type instance O.AttributeList XMLRPCParams = XMLRPCParamsAttributeList
type XMLRPCParamsAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "soup_xmlrpc_params_free" soup_xmlrpc_params_free ::
Ptr XMLRPCParams ->
IO ()
xMLRPCParamsFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
XMLRPCParams
-> m ()
xMLRPCParamsFree self = liftIO $ do
self' <- unsafeManagedPtrGetPtr self
soup_xmlrpc_params_free self'
touchManagedPtr self
return ()
#if ENABLE_OVERLOADING
data XMLRPCParamsFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo XMLRPCParamsFreeMethodInfo XMLRPCParams signature where
overloadedMethod _ = xMLRPCParamsFree
#endif
foreign import ccall "soup_xmlrpc_params_parse" soup_xmlrpc_params_parse ::
Ptr XMLRPCParams ->
CString ->
Ptr (Ptr GError) ->
IO (Ptr GVariant)
xMLRPCParamsParse ::
(B.CallStack.HasCallStack, MonadIO m) =>
XMLRPCParams
-> Maybe (T.Text)
-> m GVariant
xMLRPCParamsParse self signature = liftIO $ do
self' <- unsafeManagedPtrGetPtr self
maybeSignature <- case signature of
Nothing -> return nullPtr
Just jSignature -> do
jSignature' <- textToCString jSignature
return jSignature'
onException (do
result <- propagateGError $ soup_xmlrpc_params_parse self' maybeSignature
checkUnexpectedReturnNULL "xMLRPCParamsParse" result
result' <- B.GVariant.wrapGVariantPtr result
touchManagedPtr self
freeMem maybeSignature
return result'
) (do
freeMem maybeSignature
)
#if ENABLE_OVERLOADING
data XMLRPCParamsParseMethodInfo
instance (signature ~ (Maybe (T.Text) -> m GVariant), MonadIO m) => O.MethodInfo XMLRPCParamsParseMethodInfo XMLRPCParams signature where
overloadedMethod _ = xMLRPCParamsParse
#endif
#if ENABLE_OVERLOADING
type family ResolveXMLRPCParamsMethod (t :: Symbol) (o :: *) :: * where
ResolveXMLRPCParamsMethod "free" o = XMLRPCParamsFreeMethodInfo
ResolveXMLRPCParamsMethod "parse" o = XMLRPCParamsParseMethodInfo
ResolveXMLRPCParamsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveXMLRPCParamsMethod t XMLRPCParams, O.MethodInfo info XMLRPCParams p) => O.IsLabelProxy t (XMLRPCParams -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveXMLRPCParamsMethod t XMLRPCParams, O.MethodInfo info XMLRPCParams p) => O.IsLabel t (XMLRPCParams -> 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
#endif