{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) A 'GI.Gst.Structs.Uri.Uri' object can be used to parse and split a URI string into its constituent parts. Two 'GI.Gst.Structs.Uri.Uri' objects can be joined to make a new 'GI.Gst.Structs.Uri.Uri' using the algorithm described in RFC3986. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gst.Structs.Uri ( -- * Exported types Uri(..) , noUri , -- * Methods -- ** appendPath #method:appendPath# #if ENABLE_OVERLOADING UriAppendPathMethodInfo , #endif uriAppendPath , -- ** appendPathSegment #method:appendPathSegment# #if ENABLE_OVERLOADING UriAppendPathSegmentMethodInfo , #endif uriAppendPathSegment , -- ** construct #method:construct# uriConstruct , -- ** equal #method:equal# #if ENABLE_OVERLOADING UriEqualMethodInfo , #endif uriEqual , -- ** fromString #method:fromString# uriFromString , -- ** fromStringWithBase #method:fromStringWithBase# #if ENABLE_OVERLOADING UriFromStringWithBaseMethodInfo , #endif uriFromStringWithBase , -- ** getFragment #method:getFragment# #if ENABLE_OVERLOADING UriGetFragmentMethodInfo , #endif uriGetFragment , -- ** getHost #method:getHost# #if ENABLE_OVERLOADING UriGetHostMethodInfo , #endif uriGetHost , -- ** getLocation #method:getLocation# uriGetLocation , -- ** getMediaFragmentTable #method:getMediaFragmentTable# #if ENABLE_OVERLOADING UriGetMediaFragmentTableMethodInfo , #endif uriGetMediaFragmentTable , -- ** getPath #method:getPath# #if ENABLE_OVERLOADING UriGetPathMethodInfo , #endif uriGetPath , -- ** getPathSegments #method:getPathSegments# #if ENABLE_OVERLOADING UriGetPathSegmentsMethodInfo , #endif uriGetPathSegments , -- ** getPathString #method:getPathString# #if ENABLE_OVERLOADING UriGetPathStringMethodInfo , #endif uriGetPathString , -- ** getPort #method:getPort# #if ENABLE_OVERLOADING UriGetPortMethodInfo , #endif uriGetPort , -- ** getProtocol #method:getProtocol# uriGetProtocol , -- ** getQueryKeys #method:getQueryKeys# #if ENABLE_OVERLOADING UriGetQueryKeysMethodInfo , #endif uriGetQueryKeys , -- ** getQueryString #method:getQueryString# #if ENABLE_OVERLOADING UriGetQueryStringMethodInfo , #endif uriGetQueryString , -- ** getQueryTable #method:getQueryTable# #if ENABLE_OVERLOADING UriGetQueryTableMethodInfo , #endif uriGetQueryTable , -- ** getQueryValue #method:getQueryValue# #if ENABLE_OVERLOADING UriGetQueryValueMethodInfo , #endif uriGetQueryValue , -- ** getScheme #method:getScheme# #if ENABLE_OVERLOADING UriGetSchemeMethodInfo , #endif uriGetScheme , -- ** getUserinfo #method:getUserinfo# #if ENABLE_OVERLOADING UriGetUserinfoMethodInfo , #endif uriGetUserinfo , -- ** hasProtocol #method:hasProtocol# uriHasProtocol , -- ** isNormalized #method:isNormalized# #if ENABLE_OVERLOADING UriIsNormalizedMethodInfo , #endif uriIsNormalized , -- ** isValid #method:isValid# uriIsValid , -- ** isWritable #method:isWritable# #if ENABLE_OVERLOADING UriIsWritableMethodInfo , #endif uriIsWritable , -- ** join #method:join# #if ENABLE_OVERLOADING UriJoinMethodInfo , #endif uriJoin , -- ** joinStrings #method:joinStrings# uriJoinStrings , -- ** makeWritable #method:makeWritable# #if ENABLE_OVERLOADING UriMakeWritableMethodInfo , #endif uriMakeWritable , -- ** new #method:new# uriNew , -- ** newWithBase #method:newWithBase# #if ENABLE_OVERLOADING UriNewWithBaseMethodInfo , #endif uriNewWithBase , -- ** normalize #method:normalize# #if ENABLE_OVERLOADING UriNormalizeMethodInfo , #endif uriNormalize , -- ** protocolIsSupported #method:protocolIsSupported# uriProtocolIsSupported , -- ** protocolIsValid #method:protocolIsValid# uriProtocolIsValid , -- ** queryHasKey #method:queryHasKey# #if ENABLE_OVERLOADING UriQueryHasKeyMethodInfo , #endif uriQueryHasKey , -- ** removeQueryKey #method:removeQueryKey# #if ENABLE_OVERLOADING UriRemoveQueryKeyMethodInfo , #endif uriRemoveQueryKey , -- ** setFragment #method:setFragment# #if ENABLE_OVERLOADING UriSetFragmentMethodInfo , #endif uriSetFragment , -- ** setHost #method:setHost# #if ENABLE_OVERLOADING UriSetHostMethodInfo , #endif uriSetHost , -- ** setPath #method:setPath# #if ENABLE_OVERLOADING UriSetPathMethodInfo , #endif uriSetPath , -- ** setPathSegments #method:setPathSegments# #if ENABLE_OVERLOADING UriSetPathSegmentsMethodInfo , #endif uriSetPathSegments , -- ** setPathString #method:setPathString# #if ENABLE_OVERLOADING UriSetPathStringMethodInfo , #endif uriSetPathString , -- ** setPort #method:setPort# #if ENABLE_OVERLOADING UriSetPortMethodInfo , #endif uriSetPort , -- ** setQueryString #method:setQueryString# #if ENABLE_OVERLOADING UriSetQueryStringMethodInfo , #endif uriSetQueryString , -- ** setQueryTable #method:setQueryTable# #if ENABLE_OVERLOADING UriSetQueryTableMethodInfo , #endif uriSetQueryTable , -- ** setQueryValue #method:setQueryValue# #if ENABLE_OVERLOADING UriSetQueryValueMethodInfo , #endif uriSetQueryValue , -- ** setScheme #method:setScheme# #if ENABLE_OVERLOADING UriSetSchemeMethodInfo , #endif uriSetScheme , -- ** setUserinfo #method:setUserinfo# #if ENABLE_OVERLOADING UriSetUserinfoMethodInfo , #endif uriSetUserinfo , -- ** toString #method:toString# #if ENABLE_OVERLOADING UriToStringMethodInfo , #endif uriToString , ) 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.GClosure as B.GClosure 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.GI.Base.Properties as B.Properties 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 import qualified GHC.OverloadedLabels as OL import {-# SOURCE #-} qualified GI.Gst.Enums as Gst.Enums -- | Memory-managed wrapper type. newtype Uri = Uri (ManagedPtr Uri) foreign import ccall "gst_uri_get_type" c_gst_uri_get_type :: IO GType instance BoxedObject Uri where boxedType _ = c_gst_uri_get_type -- | A convenience alias for `Nothing` :: `Maybe` `Uri`. noUri :: Maybe Uri noUri = Nothing #if ENABLE_OVERLOADING instance O.HasAttributeList Uri type instance O.AttributeList Uri = UriAttributeList type UriAttributeList = ('[ ] :: [(Symbol, *)]) #endif -- method Uri::new -- method type : Constructor -- Args : [Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The scheme for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "userinfo", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The user-info for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The host name for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The port number for the new URI or %GST_URI_NO_PORT.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The path for the new URI with '/' separating path\n elements.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The query string for the new URI with '&' separating\n query elements. Elements containing '&' characters\n should encode them as \"%26\".", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fragment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The fragment name for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_new" gst_uri_new :: CString -> -- scheme : TBasicType TUTF8 CString -> -- userinfo : TBasicType TUTF8 CString -> -- host : TBasicType TUTF8 Word32 -> -- port : TBasicType TUInt CString -> -- path : TBasicType TUTF8 CString -> -- query : TBasicType TUTF8 CString -> -- fragment : TBasicType TUTF8 IO (Ptr Uri) {- | Creates a new 'GI.Gst.Structs.Uri.Uri' object with the given URI parts. The path and query strings will be broken down into their elements. All strings should not be escaped except where indicated. /Since: 1.6/ -} uriNew :: (B.CallStack.HasCallStack, MonadIO m) => Maybe (T.Text) {- ^ /@scheme@/: The scheme for the new URI. -} -> Maybe (T.Text) {- ^ /@userinfo@/: The user-info for the new URI. -} -> Maybe (T.Text) {- ^ /@host@/: The host name for the new URI. -} -> Word32 {- ^ /@port@/: The port number for the new URI or 'GI.Gst.Constants.URI_NO_PORT'. -} -> Maybe (T.Text) {- ^ /@path@/: The path for the new URI with \'\/\' separating path elements. -} -> Maybe (T.Text) {- ^ /@query@/: The query string for the new URI with \'&\' separating query elements. Elements containing \'&\' characters should encode them as \"%26\". -} -> Maybe (T.Text) {- ^ /@fragment@/: The fragment name for the new URI. -} -> m Uri {- ^ __Returns:__ A new 'GI.Gst.Structs.Uri.Uri' object. -} uriNew scheme userinfo host port path query fragment = liftIO $ do maybeScheme <- case scheme of Nothing -> return nullPtr Just jScheme -> do jScheme' <- textToCString jScheme return jScheme' maybeUserinfo <- case userinfo of Nothing -> return nullPtr Just jUserinfo -> do jUserinfo' <- textToCString jUserinfo return jUserinfo' maybeHost <- case host of Nothing -> return nullPtr Just jHost -> do jHost' <- textToCString jHost return jHost' maybePath <- case path of Nothing -> return nullPtr Just jPath -> do jPath' <- textToCString jPath return jPath' maybeQuery <- case query of Nothing -> return nullPtr Just jQuery -> do jQuery' <- textToCString jQuery return jQuery' maybeFragment <- case fragment of Nothing -> return nullPtr Just jFragment -> do jFragment' <- textToCString jFragment return jFragment' result <- gst_uri_new maybeScheme maybeUserinfo maybeHost port maybePath maybeQuery maybeFragment checkUnexpectedReturnNULL "uriNew" result result' <- (wrapBoxed Uri) result freeMem maybeScheme freeMem maybeUserinfo freeMem maybeHost freeMem maybePath freeMem maybeQuery freeMem maybeFragment return result' #if ENABLE_OVERLOADING #endif -- method Uri::append_path -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relative_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Relative path to append to the end of the current path.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_append_path" gst_uri_append_path :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- relative_path : TBasicType TUTF8 IO CInt {- | Append a path onto the end of the path in the URI. The path is not normalized, call @/gst_uri_normalize/@() to normalize the path. /Since: 1.6/ -} uriAppendPath :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@relativePath@/: Relative path to append to the end of the current path. -} -> m Bool {- ^ __Returns:__ 'True' if the path was appended successfully. -} uriAppendPath uri relativePath = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri relativePath' <- textToCString relativePath result <- gst_uri_append_path uri' relativePath' let result' = (/= 0) result touchManagedPtr uri freeMem relativePath' return result' #if ENABLE_OVERLOADING data UriAppendPathMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriAppendPathMethodInfo Uri signature where overloadedMethod _ = uriAppendPath #endif -- method Uri::append_path_segment -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path_segment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The path segment string to append to the URI path.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_append_path_segment" gst_uri_append_path_segment :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- path_segment : TBasicType TUTF8 IO CInt {- | Append a single path segment onto the end of the URI path. /Since: 1.6/ -} uriAppendPathSegment :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@pathSegment@/: The path segment string to append to the URI path. -} -> m Bool {- ^ __Returns:__ 'True' if the path was appended successfully. -} uriAppendPathSegment uri pathSegment = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri pathSegment' <- textToCString pathSegment result <- gst_uri_append_path_segment uri' pathSegment' let result' = (/= 0) result touchManagedPtr uri freeMem pathSegment' return result' #if ENABLE_OVERLOADING data UriAppendPathSegmentMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriAppendPathSegmentMethodInfo Uri signature where overloadedMethod _ = uriAppendPathSegment #endif -- method Uri::equal -- method type : OrdinaryMethod -- Args : [Arg {argCName = "first", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "First #GstUri to compare.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "second", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Second #GstUri to compare.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_equal" gst_uri_equal :: Ptr Uri -> -- first : TInterface (Name {namespace = "Gst", name = "Uri"}) Ptr Uri -> -- second : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CInt {- | Compares two 'GI.Gst.Structs.Uri.Uri' objects to see if they represent the same normalized URI. /Since: 1.6/ -} uriEqual :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@first@/: First 'GI.Gst.Structs.Uri.Uri' to compare. -} -> Uri {- ^ /@second@/: Second 'GI.Gst.Structs.Uri.Uri' to compare. -} -> m Bool {- ^ __Returns:__ 'True' if the normalized versions of the two URI\'s would be equal. -} uriEqual first second = liftIO $ do first' <- unsafeManagedPtrGetPtr first second' <- unsafeManagedPtrGetPtr second result <- gst_uri_equal first' second' let result' = (/= 0) result touchManagedPtr first touchManagedPtr second return result' #if ENABLE_OVERLOADING data UriEqualMethodInfo instance (signature ~ (Uri -> m Bool), MonadIO m) => O.MethodInfo UriEqualMethodInfo Uri signature where overloadedMethod _ = uriEqual #endif -- method Uri::from_string_with_base -- method type : OrdinaryMethod -- Args : [Arg {argCName = "base", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The base URI to join the new URI with.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The URI string to parse.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_from_string_with_base" gst_uri_from_string_with_base :: Ptr Uri -> -- base : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- uri : TBasicType TUTF8 IO (Ptr Uri) {- | Like 'GI.Gst.Functions.uriFromString' but also joins with a base URI. /Since: 1.6/ -} uriFromStringWithBase :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@base@/: The base URI to join the new URI with. -} -> T.Text {- ^ /@uri@/: The URI string to parse. -} -> m Uri {- ^ __Returns:__ A new 'GI.Gst.Structs.Uri.Uri' object. -} uriFromStringWithBase base uri = liftIO $ do base' <- unsafeManagedPtrGetPtr base uri' <- textToCString uri result <- gst_uri_from_string_with_base base' uri' checkUnexpectedReturnNULL "uriFromStringWithBase" result result' <- (wrapBoxed Uri) result touchManagedPtr base freeMem uri' return result' #if ENABLE_OVERLOADING data UriFromStringWithBaseMethodInfo instance (signature ~ (T.Text -> m Uri), MonadIO m) => O.MethodInfo UriFromStringWithBaseMethodInfo Uri signature where overloadedMethod _ = uriFromStringWithBase #endif -- method Uri::get_fragment -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_fragment" gst_uri_get_fragment :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Get the fragment name from the URI or 'Nothing' if it doesn\'t exist. If /@uri@/ is 'Nothing' then returns 'Nothing'. /Since: 1.6/ -} uriGetFragment :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' object. -} -> m (Maybe T.Text) {- ^ __Returns:__ The host name from the 'GI.Gst.Structs.Uri.Uri' object or 'Nothing'. -} uriGetFragment uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_fragment uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetFragmentMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetFragmentMethodInfo Uri signature where overloadedMethod _ = uriGetFragment #endif -- method Uri::get_host -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_host" gst_uri_get_host :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Get the host name from the URI or 'Nothing' if it doesn\'t exist. If /@uri@/ is 'Nothing' then returns 'Nothing'. /Since: 1.6/ -} uriGetHost :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' object. -} -> m (Maybe T.Text) {- ^ __Returns:__ The host name from the 'GI.Gst.Structs.Uri.Uri' object or 'Nothing'. -} uriGetHost uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_host uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetHostMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetHostMethodInfo Uri signature where overloadedMethod _ = uriGetHost #endif -- method Uri::get_media_fragment_table -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the fragment table from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8)) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_media_fragment_table" gst_uri_get_media_fragment_table :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr (GHashTable CString CString)) {- | Get the media fragment table from the URI, as defined by \"Media Fragments URI 1.0\". Hash table returned by this API is a list of \"key-value\" pairs, and the each pair is generated by splitting \"URI fragment\" per \"&\" sub-delims, then \"key\" and \"value\" are split by \"=\" sub-delims. The \"key\" returned by this API may be undefined keyword by standard. A value may be 'Nothing' to indicate that the key should appear in the fragment string in the URI, but does not have a value. Free the returned 'GI.GLib.Structs.HashTable.HashTable' with @/g_hash_table_unref/@() when it is no longer required. Modifying this hash table does not affect the fragment in the URI. See more about Media Fragments URI 1.0 (W3C) at https:\/\/www.w3.org\/TR\/media-frags\/ /Since: 1.12/ -} uriGetMediaFragmentTable :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the fragment table from. -} -> m (Maybe (Map.Map T.Text T.Text)) {- ^ __Returns:__ The fragment hash table from the URI. -} uriGetMediaFragmentTable uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_media_fragment_table uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- unpackGHashTable result' let result''' = mapFirst cstringUnpackPtr result'' result'''' <- mapFirstA cstringToText result''' let result''''' = mapSecond cstringUnpackPtr result'''' result'''''' <- mapSecondA cstringToText result''''' let result''''''' = Map.fromList result'''''' unrefGHashTable result' return result''''''' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetMediaFragmentTableMethodInfo instance (signature ~ (m (Maybe (Map.Map T.Text T.Text))), MonadIO m) => O.MethodInfo UriGetMediaFragmentTableMethodInfo Uri signature where overloadedMethod _ = uriGetMediaFragmentTable #endif -- method Uri::get_path -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the path from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_path" gst_uri_get_path :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Extract the path string from the URI object. /Since: 1.6/ -} uriGetPath :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the path from. -} -> m (Maybe T.Text) {- ^ __Returns:__ The path from the URI. Once finished with the string should be 'GI.GLib.Functions.free'\'d. -} uriGetPath uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_path uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetPathMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetPathMethodInfo Uri signature where overloadedMethod _ = uriGetPath #endif -- method Uri::get_path_segments -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the path from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGList (TBasicType TUTF8)) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_path_segments" gst_uri_get_path_segments :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr (GList CString)) {- | Get a list of path segments from the URI. /Since: 1.6/ -} uriGetPathSegments :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the path from. -} -> m [T.Text] {- ^ __Returns:__ A 'GI.GLib.Structs.List.List' of path segment strings or 'Nothing' if no path segments are available. Free the list when no longer needed with g_list_free_full(list, g_free). -} uriGetPathSegments uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_path_segments uri' result' <- unpackGList result result'' <- mapM cstringToText result' mapGList freeMem result g_list_free result touchManagedPtr uri return result'' #if ENABLE_OVERLOADING data UriGetPathSegmentsMethodInfo instance (signature ~ (m [T.Text]), MonadIO m) => O.MethodInfo UriGetPathSegmentsMethodInfo Uri signature where overloadedMethod _ = uriGetPathSegments #endif -- method Uri::get_path_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the path from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_path_string" gst_uri_get_path_string :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Extract the path string from the URI object as a percent encoded URI path. /Since: 1.6/ -} uriGetPathString :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the path from. -} -> m (Maybe T.Text) {- ^ __Returns:__ The path from the URI. Once finished with the string should be 'GI.GLib.Functions.free'\'d. -} uriGetPathString uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_path_string uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetPathStringMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetPathStringMethodInfo Uri signature where overloadedMethod _ = uriGetPathString #endif -- method Uri::get_port -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUInt) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_port" gst_uri_get_port :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO Word32 {- | Get the port number from the URI or 'GI.Gst.Constants.URI_NO_PORT' if it doesn\'t exist. If /@uri@/ is 'Nothing' then returns 'GI.Gst.Constants.URI_NO_PORT'. /Since: 1.6/ -} uriGetPort :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' object. -} -> m Word32 {- ^ __Returns:__ The port number from the 'GI.Gst.Structs.Uri.Uri' object or 'GI.Gst.Constants.URI_NO_PORT'. -} uriGetPort uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_port uri' touchManagedPtr uri return result #if ENABLE_OVERLOADING data UriGetPortMethodInfo instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo UriGetPortMethodInfo Uri signature where overloadedMethod _ = uriGetPort #endif -- method Uri::get_query_keys -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to examine.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGList (TBasicType TUTF8)) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_query_keys" gst_uri_get_query_keys :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr (GList CString)) {- | Get a list of the query keys from the URI. /Since: 1.6/ -} uriGetQueryKeys :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to examine. -} -> m [T.Text] {- ^ __Returns:__ A list of keys from the URI query. Free the list with @/g_list_free()/@. -} uriGetQueryKeys uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_query_keys uri' result' <- unpackGList result result'' <- mapM cstringToText result' g_list_free result touchManagedPtr uri return result'' #if ENABLE_OVERLOADING data UriGetQueryKeysMethodInfo instance (signature ~ (m [T.Text]), MonadIO m) => O.MethodInfo UriGetQueryKeysMethodInfo Uri signature where overloadedMethod _ = uriGetQueryKeys #endif -- method Uri::get_query_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the query string from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_query_string" gst_uri_get_query_string :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Get a percent encoded URI query string from the /@uri@/. /Since: 1.6/ -} uriGetQueryString :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the query string from. -} -> m (Maybe T.Text) {- ^ __Returns:__ A percent encoded query string. Use 'GI.GLib.Functions.free' when no longer needed. -} uriGetQueryString uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_query_string uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetQueryStringMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetQueryStringMethodInfo Uri signature where overloadedMethod _ = uriGetQueryString #endif -- method Uri::get_query_table -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to get the query table from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8)) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_query_table" gst_uri_get_query_table :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr (GHashTable CString CString)) {- | Get the query table from the URI. Keys and values in the table are freed with g_free when they are deleted. A value may be 'Nothing' to indicate that the key should appear in the query string in the URI, but does not have a value. Free the returned 'GI.GLib.Structs.HashTable.HashTable' with @/g_hash_table_unref/@() when it is no longer required. Modifying this hash table will modify the query in the URI. /Since: 1.6/ -} uriGetQueryTable :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to get the query table from. -} -> m (Maybe (Map.Map T.Text T.Text)) {- ^ __Returns:__ The query hash table from the URI. -} uriGetQueryTable uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_query_table uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- unpackGHashTable result' let result''' = mapFirst cstringUnpackPtr result'' result'''' <- mapFirstA cstringToText result''' let result''''' = mapSecond cstringUnpackPtr result'''' result'''''' <- mapSecondA cstringToText result''''' let result''''''' = Map.fromList result'''''' unrefGHashTable result' return result''''''' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetQueryTableMethodInfo instance (signature ~ (m (Maybe (Map.Map T.Text T.Text))), MonadIO m) => O.MethodInfo UriGetQueryTableMethodInfo Uri signature where overloadedMethod _ = uriGetQueryTable #endif -- method Uri::get_query_value -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to examine.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The key to lookup.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_query_value" gst_uri_get_query_value :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- query_key : TBasicType TUTF8 IO CString {- | Get the value associated with the /@queryKey@/ key. Will return 'Nothing' if the key has no value or if the key does not exist in the URI query table. Because 'Nothing' is returned for both missing keys and keys with no value, you should use 'GI.Gst.Structs.Uri.uriQueryHasKey' to determine if a key is present in the URI query. /Since: 1.6/ -} uriGetQueryValue :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to examine. -} -> T.Text {- ^ /@queryKey@/: The key to lookup. -} -> m (Maybe T.Text) {- ^ __Returns:__ The value for the given key, or 'Nothing' if not found. -} uriGetQueryValue uri queryKey = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri queryKey' <- textToCString queryKey result <- gst_uri_get_query_value uri' queryKey' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr uri freeMem queryKey' return maybeResult #if ENABLE_OVERLOADING data UriGetQueryValueMethodInfo instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetQueryValueMethodInfo Uri signature where overloadedMethod _ = uriGetQueryValue #endif -- method Uri::get_scheme -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_scheme" gst_uri_get_scheme :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Get the scheme name from the URI or 'Nothing' if it doesn\'t exist. If /@uri@/ is 'Nothing' then returns 'Nothing'. -} uriGetScheme :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' object. -} -> m (Maybe T.Text) {- ^ __Returns:__ The scheme from the 'GI.Gst.Structs.Uri.Uri' object or 'Nothing'. -} uriGetScheme uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_scheme uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetSchemeMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetSchemeMethodInfo Uri signature where overloadedMethod _ = uriGetScheme #endif -- method Uri::get_userinfo -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_userinfo" gst_uri_get_userinfo :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Get the userinfo (usually in the form \"username:password\") from the URI or 'Nothing' if it doesn\'t exist. If /@uri@/ is 'Nothing' then returns 'Nothing'. /Since: 1.6/ -} uriGetUserinfo :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' object. -} -> m (Maybe T.Text) {- ^ __Returns:__ The userinfo from the 'GI.Gst.Structs.Uri.Uri' object or 'Nothing'. -} uriGetUserinfo uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_get_userinfo uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr uri return maybeResult #if ENABLE_OVERLOADING data UriGetUserinfoMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo UriGetUserinfoMethodInfo Uri signature where overloadedMethod _ = uriGetUserinfo #endif -- method Uri::is_normalized -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to test to see if it is normalized.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_is_normalized" gst_uri_is_normalized :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CInt {- | Tests the /@uri@/ to see if it is normalized. A 'Nothing' /@uri@/ is considered to be normalized. /Since: 1.6/ -} uriIsNormalized :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to test to see if it is normalized. -} -> m Bool {- ^ __Returns:__ TRUE if the URI is normalized or is 'Nothing'. -} uriIsNormalized uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_is_normalized uri' let result' = (/= 0) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriIsNormalizedMethodInfo instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo UriIsNormalizedMethodInfo Uri signature where overloadedMethod _ = uriIsNormalized #endif -- method Uri::is_writable -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri object to test.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_is_writable" gst_uri_is_writable :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CInt {- | Check if it is safe to write to this 'GI.Gst.Structs.Uri.Uri'. Check if the refcount of /@uri@/ is exactly 1, meaning that no other reference exists to the 'GI.Gst.Structs.Uri.Uri' and that the 'GI.Gst.Structs.Uri.Uri' is therefore writable. Modification of a 'GI.Gst.Structs.Uri.Uri' should only be done after verifying that it is writable. /Since: 1.6/ -} uriIsWritable :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' object to test. -} -> m Bool {- ^ __Returns:__ 'True' if it is safe to write to the object. -} uriIsWritable uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_is_writable uri' let result' = (/= 0) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriIsWritableMethodInfo instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo UriIsWritableMethodInfo Uri signature where overloadedMethod _ = uriIsWritable #endif -- method Uri::join -- method type : OrdinaryMethod -- Args : [Arg {argCName = "base_uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The base URI to join another to.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref_uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The reference URI to join onto the\n base URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_join" gst_uri_join :: Ptr Uri -> -- base_uri : TInterface (Name {namespace = "Gst", name = "Uri"}) Ptr Uri -> -- ref_uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr Uri) {- | Join a reference URI onto a base URI using the method from RFC 3986. If either URI is 'Nothing' then the other URI will be returned with the ref count increased. /Since: 1.6/ -} uriJoin :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@baseUri@/: The base URI to join another to. -} -> Maybe (Uri) {- ^ /@refUri@/: The reference URI to join onto the base URI. -} -> m (Maybe Uri) {- ^ __Returns:__ A 'GI.Gst.Structs.Uri.Uri' which represents the base with the reference URI joined on. -} uriJoin baseUri refUri = liftIO $ do baseUri' <- unsafeManagedPtrGetPtr baseUri maybeRefUri <- case refUri of Nothing -> return nullPtr Just jRefUri -> do jRefUri' <- unsafeManagedPtrGetPtr jRefUri return jRefUri' result <- gst_uri_join baseUri' maybeRefUri maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (wrapBoxed Uri) result' return result'' touchManagedPtr baseUri whenJust refUri touchManagedPtr return maybeResult #if ENABLE_OVERLOADING data UriJoinMethodInfo instance (signature ~ (Maybe (Uri) -> m (Maybe Uri)), MonadIO m) => O.MethodInfo UriJoinMethodInfo Uri signature where overloadedMethod _ = uriJoin #endif -- method Uri::make_writable -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri object to make writable.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_make_writable" gst_uri_make_writable :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO (Ptr Uri) {- | Make the 'GI.Gst.Structs.Uri.Uri' writable. Checks if /@uri@/ is writable, and if so the original object is returned. If not, then a writable copy is made and returned. This gives away the reference to /@uri@/ and returns a reference to the new 'GI.Gst.Structs.Uri.Uri'. If /@uri@/ is 'Nothing' then 'Nothing' is returned. /Since: 1.6/ -} uriMakeWritable :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' object to make writable. -} -> m Uri {- ^ __Returns:__ A writable version of /@uri@/. -} uriMakeWritable uri = liftIO $ do uri' <- B.ManagedPtr.disownBoxed uri result <- gst_uri_make_writable uri' checkUnexpectedReturnNULL "uriMakeWritable" result result' <- (wrapBoxed Uri) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriMakeWritableMethodInfo instance (signature ~ (m Uri), MonadIO m) => O.MethodInfo UriMakeWritableMethodInfo Uri signature where overloadedMethod _ = uriMakeWritable #endif -- method Uri::new_with_base -- method type : OrdinaryMethod -- Args : [Arg {argCName = "base", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The base URI to join the new URI to.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The scheme for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "userinfo", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The user-info for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The host name for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The port number for the new URI or %GST_URI_NO_PORT.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The path for the new URI with '/' separating path\n elements.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The query string for the new URI with '&' separating\n query elements. Elements containing '&' characters\n should encode them as \"%26\".", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fragment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The fragment name for the new URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_new_with_base" gst_uri_new_with_base :: Ptr Uri -> -- base : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- scheme : TBasicType TUTF8 CString -> -- userinfo : TBasicType TUTF8 CString -> -- host : TBasicType TUTF8 Word32 -> -- port : TBasicType TUInt CString -> -- path : TBasicType TUTF8 CString -> -- query : TBasicType TUTF8 CString -> -- fragment : TBasicType TUTF8 IO (Ptr Uri) {- | Like 'GI.Gst.Structs.Uri.uriNew', but joins the new URI onto a base URI. /Since: 1.6/ -} uriNewWithBase :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@base@/: The base URI to join the new URI to. -} -> Maybe (T.Text) {- ^ /@scheme@/: The scheme for the new URI. -} -> Maybe (T.Text) {- ^ /@userinfo@/: The user-info for the new URI. -} -> Maybe (T.Text) {- ^ /@host@/: The host name for the new URI. -} -> Word32 {- ^ /@port@/: The port number for the new URI or 'GI.Gst.Constants.URI_NO_PORT'. -} -> Maybe (T.Text) {- ^ /@path@/: The path for the new URI with \'\/\' separating path elements. -} -> Maybe (T.Text) {- ^ /@query@/: The query string for the new URI with \'&\' separating query elements. Elements containing \'&\' characters should encode them as \"%26\". -} -> Maybe (T.Text) {- ^ /@fragment@/: The fragment name for the new URI. -} -> m Uri {- ^ __Returns:__ The new URI joined onto /@base@/. -} uriNewWithBase base scheme userinfo host port path query fragment = liftIO $ do base' <- unsafeManagedPtrGetPtr base maybeScheme <- case scheme of Nothing -> return nullPtr Just jScheme -> do jScheme' <- textToCString jScheme return jScheme' maybeUserinfo <- case userinfo of Nothing -> return nullPtr Just jUserinfo -> do jUserinfo' <- textToCString jUserinfo return jUserinfo' maybeHost <- case host of Nothing -> return nullPtr Just jHost -> do jHost' <- textToCString jHost return jHost' maybePath <- case path of Nothing -> return nullPtr Just jPath -> do jPath' <- textToCString jPath return jPath' maybeQuery <- case query of Nothing -> return nullPtr Just jQuery -> do jQuery' <- textToCString jQuery return jQuery' maybeFragment <- case fragment of Nothing -> return nullPtr Just jFragment -> do jFragment' <- textToCString jFragment return jFragment' result <- gst_uri_new_with_base base' maybeScheme maybeUserinfo maybeHost port maybePath maybeQuery maybeFragment checkUnexpectedReturnNULL "uriNewWithBase" result result' <- (wrapBoxed Uri) result touchManagedPtr base freeMem maybeScheme freeMem maybeUserinfo freeMem maybeHost freeMem maybePath freeMem maybeQuery freeMem maybeFragment return result' #if ENABLE_OVERLOADING data UriNewWithBaseMethodInfo instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> Maybe (T.Text) -> Word32 -> Maybe (T.Text) -> Maybe (T.Text) -> Maybe (T.Text) -> m Uri), MonadIO m) => O.MethodInfo UriNewWithBaseMethodInfo Uri signature where overloadedMethod _ = uriNewWithBase #endif -- method Uri::normalize -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to normalize.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_normalize" gst_uri_normalize :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CInt {- | Normalization will remove extra path segments (\".\" and \"..\") from the URI. It will also convert the scheme and host name to lower case and any percent-encoded values to uppercase. The 'GI.Gst.Structs.Uri.Uri' object must be writable. Check with 'GI.Gst.Structs.Uri.uriIsWritable' or use 'GI.Gst.Structs.Uri.uriMakeWritable' first. /Since: 1.6/ -} uriNormalize :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to normalize. -} -> m Bool {- ^ __Returns:__ TRUE if the URI was modified. -} uriNormalize uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_normalize uri' let result' = (/= 0) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriNormalizeMethodInfo instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo UriNormalizeMethodInfo Uri signature where overloadedMethod _ = uriNormalize #endif -- method Uri::query_has_key -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to examine.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The key to lookup.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_query_has_key" gst_uri_query_has_key :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- query_key : TBasicType TUTF8 IO CInt {- | Check if there is a query table entry for the /@queryKey@/ key. /Since: 1.6/ -} uriQueryHasKey :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to examine. -} -> T.Text {- ^ /@queryKey@/: The key to lookup. -} -> m Bool {- ^ __Returns:__ 'True' if /@queryKey@/ exists in the URI query table. -} uriQueryHasKey uri queryKey = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri queryKey' <- textToCString queryKey result <- gst_uri_query_has_key uri' queryKey' let result' = (/= 0) result touchManagedPtr uri freeMem queryKey' return result' #if ENABLE_OVERLOADING data UriQueryHasKeyMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriQueryHasKeyMethodInfo Uri signature where overloadedMethod _ = uriQueryHasKey #endif -- method Uri::remove_query_key -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The key to remove.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_remove_query_key" gst_uri_remove_query_key :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- query_key : TBasicType TUTF8 IO CInt {- | Remove an entry from the query table by key. /Since: 1.6/ -} uriRemoveQueryKey :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@queryKey@/: The key to remove. -} -> m Bool {- ^ __Returns:__ 'True' if the key existed in the table and was removed. -} uriRemoveQueryKey uri queryKey = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri queryKey' <- textToCString queryKey result <- gst_uri_remove_query_key uri' queryKey' let result' = (/= 0) result touchManagedPtr uri freeMem queryKey' return result' #if ENABLE_OVERLOADING data UriRemoveQueryKeyMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriRemoveQueryKeyMethodInfo Uri signature where overloadedMethod _ = uriRemoveQueryKey #endif -- method Uri::set_fragment -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fragment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The fragment string to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_fragment" gst_uri_set_fragment :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- fragment : TBasicType TUTF8 IO CInt {- | Sets the fragment string in the URI. Use a value of 'Nothing' in /@fragment@/ to unset the fragment string. /Since: 1.6/ -} uriSetFragment :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> Maybe (T.Text) {- ^ /@fragment@/: The fragment string to set. -} -> m Bool {- ^ __Returns:__ 'True' if the fragment was set\/unset successfully. -} uriSetFragment uri fragment = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri maybeFragment <- case fragment of Nothing -> return nullPtr Just jFragment -> do jFragment' <- textToCString jFragment return jFragment' result <- gst_uri_set_fragment uri' maybeFragment let result' = (/= 0) result touchManagedPtr uri freeMem maybeFragment return result' #if ENABLE_OVERLOADING data UriSetFragmentMethodInfo instance (signature ~ (Maybe (T.Text) -> m Bool), MonadIO m) => O.MethodInfo UriSetFragmentMethodInfo Uri signature where overloadedMethod _ = uriSetFragment #endif -- method Uri::set_host -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new host string to set or %NULL to unset.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_host" gst_uri_set_host :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- host : TBasicType TUTF8 IO CInt {- | Set or unset the host for the URI. /Since: 1.6/ -} uriSetHost :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@host@/: The new host string to set or 'Nothing' to unset. -} -> m Bool {- ^ __Returns:__ 'True' if the host was set\/unset successfully. -} uriSetHost uri host = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri host' <- textToCString host result <- gst_uri_set_host uri' host' let result' = (/= 0) result touchManagedPtr uri freeMem host' return result' #if ENABLE_OVERLOADING data UriSetHostMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetHostMethodInfo Uri signature where overloadedMethod _ = uriSetHost #endif -- method Uri::set_path -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new path to set with path segments separated by '/', or use %NULL\n to unset the path.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_path" gst_uri_set_path :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- path : TBasicType TUTF8 IO CInt {- | Sets or unsets the path in the URI. /Since: 1.6/ -} uriSetPath :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@path@/: The new path to set with path segments separated by \'\/\', or use 'Nothing' to unset the path. -} -> m Bool {- ^ __Returns:__ 'True' if the path was set successfully. -} uriSetPath uri path = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri path' <- textToCString path result <- gst_uri_set_path uri' path' let result' = (/= 0) result touchManagedPtr uri freeMem path' return result' #if ENABLE_OVERLOADING data UriSetPathMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetPathMethodInfo Uri signature where overloadedMethod _ = uriSetPath #endif -- method Uri::set_path_segments -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path_segments", argType = TGList (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The new\n path list to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_path_segments" gst_uri_set_path_segments :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) Ptr (GList CString) -> -- path_segments : TGList (TBasicType TUTF8) IO CInt {- | Replace the path segments list in the URI. /Since: 1.6/ -} uriSetPathSegments :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> [T.Text] {- ^ /@pathSegments@/: The new path list to set. -} -> m Bool {- ^ __Returns:__ 'True' if the path segments were set successfully. -} uriSetPathSegments uri pathSegments = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri pathSegments' <- mapM textToCString pathSegments pathSegments'' <- packGList pathSegments' result <- gst_uri_set_path_segments uri' pathSegments'' let result' = (/= 0) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriSetPathSegmentsMethodInfo instance (signature ~ ([T.Text] -> m Bool), MonadIO m) => O.MethodInfo UriSetPathSegmentsMethodInfo Uri signature where overloadedMethod _ = uriSetPathSegments #endif -- method Uri::set_path_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new percent encoded path to set with path segments separated by\n'/', or use %NULL to unset the path.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_path_string" gst_uri_set_path_string :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- path : TBasicType TUTF8 IO CInt {- | Sets or unsets the path in the URI. /Since: 1.6/ -} uriSetPathString :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@path@/: The new percent encoded path to set with path segments separated by \'\/\', or use 'Nothing' to unset the path. -} -> m Bool {- ^ __Returns:__ 'True' if the path was set successfully. -} uriSetPathString uri path = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri path' <- textToCString path result <- gst_uri_set_path_string uri' path' let result' = (/= 0) result touchManagedPtr uri freeMem path' return result' #if ENABLE_OVERLOADING data UriSetPathStringMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetPathStringMethodInfo Uri signature where overloadedMethod _ = uriSetPathString #endif -- method Uri::set_port -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new port number to set or %GST_URI_NO_PORT to unset.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_port" gst_uri_set_port :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) Word32 -> -- port : TBasicType TUInt IO CInt {- | Set or unset the port number for the URI. /Since: 1.6/ -} uriSetPort :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> Word32 {- ^ /@port@/: The new port number to set or 'GI.Gst.Constants.URI_NO_PORT' to unset. -} -> m Bool {- ^ __Returns:__ 'True' if the port number was set\/unset successfully. -} uriSetPort uri port = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_set_port uri' port let result' = (/= 0) result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriSetPortMethodInfo instance (signature ~ (Word32 -> m Bool), MonadIO m) => O.MethodInfo UriSetPortMethodInfo Uri signature where overloadedMethod _ = uriSetPort #endif -- method Uri::set_query_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new percent encoded query string to use to populate the query\n table, or use %NULL to unset the query table.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_query_string" gst_uri_set_query_string :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- query : TBasicType TUTF8 IO CInt {- | Sets or unsets the query table in the URI. /Since: 1.6/ -} uriSetQueryString :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@query@/: The new percent encoded query string to use to populate the query table, or use 'Nothing' to unset the query table. -} -> m Bool {- ^ __Returns:__ 'True' if the query table was set successfully. -} uriSetQueryString uri query = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri query' <- textToCString query result <- gst_uri_set_query_string uri' query' let result' = (/= 0) result touchManagedPtr uri freeMem query' return result' #if ENABLE_OVERLOADING data UriSetQueryStringMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetQueryStringMethodInfo Uri signature where overloadedMethod _ = uriSetQueryString #endif -- method Uri::set_query_table -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_table", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The new\n query table to use.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_query_table" gst_uri_set_query_table :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) Ptr (GHashTable CString CString) -> -- query_table : TGHash (TBasicType TUTF8) (TBasicType TUTF8) IO CInt {- | Set the query table to use in the URI. The old table is unreferenced and a reference to the new one is used instead. A value if 'Nothing' for /@queryTable@/ will remove the query string from the URI. /Since: 1.6/ -} uriSetQueryTable :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> Maybe (Map.Map T.Text T.Text) {- ^ /@queryTable@/: The new query table to use. -} -> m Bool {- ^ __Returns:__ 'True' if the new table was successfully used for the query table. -} uriSetQueryTable uri queryTable = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri maybeQueryTable <- case queryTable of Nothing -> return nullPtr Just jQueryTable -> do let jQueryTable' = Map.toList jQueryTable jQueryTable'' <- mapFirstA textToCString jQueryTable' jQueryTable''' <- mapSecondA textToCString jQueryTable'' let jQueryTable'''' = mapFirst cstringPackPtr jQueryTable''' let jQueryTable''''' = mapSecond cstringPackPtr jQueryTable'''' jQueryTable'''''' <- packGHashTable gStrHash gStrEqual (Just ptr_to_g_free) (Just ptr_to_g_free) jQueryTable''''' return jQueryTable'''''' result <- gst_uri_set_query_table uri' maybeQueryTable let result' = (/= 0) result touchManagedPtr uri unrefGHashTable maybeQueryTable return result' #if ENABLE_OVERLOADING data UriSetQueryTableMethodInfo instance (signature ~ (Maybe (Map.Map T.Text T.Text) -> m Bool), MonadIO m) => O.MethodInfo UriSetQueryTableMethodInfo Uri signature where overloadedMethod _ = uriSetQueryTable #endif -- method Uri::set_query_value -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The key for the query entry.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The value for the key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_query_value" gst_uri_set_query_value :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- query_key : TBasicType TUTF8 CString -> -- query_value : TBasicType TUTF8 IO CInt {- | This inserts or replaces a key in the query table. A /@queryValue@/ of 'Nothing' indicates that the key has no associated value, but will still be present in the query string. /Since: 1.6/ -} uriSetQueryValue :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@queryKey@/: The key for the query entry. -} -> Maybe (T.Text) {- ^ /@queryValue@/: The value for the key. -} -> m Bool {- ^ __Returns:__ 'True' if the query table was successfully updated. -} uriSetQueryValue uri queryKey queryValue = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri queryKey' <- textToCString queryKey maybeQueryValue <- case queryValue of Nothing -> return nullPtr Just jQueryValue -> do jQueryValue' <- textToCString jQueryValue return jQueryValue' result <- gst_uri_set_query_value uri' queryKey' maybeQueryValue let result' = (/= 0) result touchManagedPtr uri freeMem queryKey' freeMem maybeQueryValue return result' #if ENABLE_OVERLOADING data UriSetQueryValueMethodInfo instance (signature ~ (T.Text -> Maybe (T.Text) -> m Bool), MonadIO m) => O.MethodInfo UriSetQueryValueMethodInfo Uri signature where overloadedMethod _ = uriSetQueryValue #endif -- method Uri::set_scheme -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new scheme to set or %NULL to unset the scheme.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_scheme" gst_uri_set_scheme :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- scheme : TBasicType TUTF8 IO CInt {- | Set or unset the scheme for the URI. /Since: 1.6/ -} uriSetScheme :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@scheme@/: The new scheme to set or 'Nothing' to unset the scheme. -} -> m Bool {- ^ __Returns:__ 'True' if the scheme was set\/unset successfully. -} uriSetScheme uri scheme = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri scheme' <- textToCString scheme result <- gst_uri_set_scheme uri' scheme' let result' = (/= 0) result touchManagedPtr uri freeMem scheme' return result' #if ENABLE_OVERLOADING data UriSetSchemeMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetSchemeMethodInfo Uri signature where overloadedMethod _ = uriSetScheme #endif -- method Uri::set_userinfo -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstUri to modify.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "userinfo", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new user-information string to set or %NULL to unset.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_set_userinfo" gst_uri_set_userinfo :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) CString -> -- userinfo : TBasicType TUTF8 IO CInt {- | Set or unset the user information for the URI. /Since: 1.6/ -} uriSetUserinfo :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: The 'GI.Gst.Structs.Uri.Uri' to modify. -} -> T.Text {- ^ /@userinfo@/: The new user-information string to set or 'Nothing' to unset. -} -> m Bool {- ^ __Returns:__ 'True' if the user information was set\/unset successfully. -} uriSetUserinfo uri userinfo = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri userinfo' <- textToCString userinfo result <- gst_uri_set_userinfo uri' userinfo' let result' = (/= 0) result touchManagedPtr uri freeMem userinfo' return result' #if ENABLE_OVERLOADING data UriSetUserinfoMethodInfo instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo UriSetUserinfoMethodInfo Uri signature where overloadedMethod _ = uriSetUserinfo #endif -- method Uri::to_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "uri", argType = TInterface (Name {namespace = "Gst", name = "Uri"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This #GstUri to convert to a string.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_to_string" gst_uri_to_string :: Ptr Uri -> -- uri : TInterface (Name {namespace = "Gst", name = "Uri"}) IO CString {- | Convert the URI to a string. Returns the URI as held in this object as a @/gchar/@* nul-terminated string. The caller should 'GI.GLib.Functions.free' the string once they are finished with it. The string is put together as described in RFC 3986. /Since: 1.6/ -} uriToString :: (B.CallStack.HasCallStack, MonadIO m) => Uri {- ^ /@uri@/: This 'GI.Gst.Structs.Uri.Uri' to convert to a string. -} -> m T.Text {- ^ __Returns:__ The string version of the URI. -} uriToString uri = liftIO $ do uri' <- unsafeManagedPtrGetPtr uri result <- gst_uri_to_string uri' checkUnexpectedReturnNULL "uriToString" result result' <- cstringToText result freeMem result touchManagedPtr uri return result' #if ENABLE_OVERLOADING data UriToStringMethodInfo instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo UriToStringMethodInfo Uri signature where overloadedMethod _ = uriToString #endif -- method Uri::construct -- method type : MemberFunction -- Args : [Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Protocol for URI", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "location", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Location for URI", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_construct" gst_uri_construct :: CString -> -- protocol : TBasicType TUTF8 CString -> -- location : TBasicType TUTF8 IO CString {-# DEPRECATED uriConstruct ["Use GstURI instead."] #-} {- | Constructs a URI for a given valid protocol and location. Free-function: g_free -} uriConstruct :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@protocol@/: Protocol for URI -} -> T.Text {- ^ /@location@/: Location for URI -} -> m T.Text {- ^ __Returns:__ a new string for this URI. Returns 'Nothing' if the given URI protocol is not valid, or the given location is 'Nothing'. -} uriConstruct protocol location = liftIO $ do protocol' <- textToCString protocol location' <- textToCString location result <- gst_uri_construct protocol' location' checkUnexpectedReturnNULL "uriConstruct" result result' <- cstringToText result freeMem result freeMem protocol' freeMem location' return result' #if ENABLE_OVERLOADING #endif -- method Uri::from_string -- method type : MemberFunction -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The URI string to parse.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "Uri"})) -- throws : False -- Skip return : False foreign import ccall "gst_uri_from_string" gst_uri_from_string :: CString -> -- uri : TBasicType TUTF8 IO (Ptr Uri) {- | Parses a URI string into a new 'GI.Gst.Structs.Uri.Uri' object. Will return NULL if the URI cannot be parsed. /Since: 1.6/ -} uriFromString :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@uri@/: The URI string to parse. -} -> m (Maybe Uri) {- ^ __Returns:__ A new 'GI.Gst.Structs.Uri.Uri' object, or NULL. -} uriFromString uri = liftIO $ do uri' <- textToCString uri result <- gst_uri_from_string uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (wrapBoxed Uri) result' return result'' freeMem uri' return maybeResult #if ENABLE_OVERLOADING #endif -- method Uri::get_location -- method type : MemberFunction -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A URI string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_location" gst_uri_get_location :: CString -> -- uri : TBasicType TUTF8 IO CString {- | Extracts the location out of a given valid URI, ie. the protocol and \":\/\/\" are stripped from the URI, which means that the location returned includes the hostname if one is specified. The returned string must be freed using 'GI.GLib.Functions.free'. Free-function: g_free -} uriGetLocation :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@uri@/: A URI string -} -> m (Maybe T.Text) {- ^ __Returns:__ the location for this URI. Returns 'Nothing' if the URI isn\'t valid. If the URI does not contain a location, an empty string is returned. -} uriGetLocation uri = liftIO $ do uri' <- textToCString uri result <- gst_uri_get_location uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' freeMem uri' return maybeResult #if ENABLE_OVERLOADING #endif -- method Uri::get_protocol -- method type : MemberFunction -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A URI string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_get_protocol" gst_uri_get_protocol :: CString -> -- uri : TBasicType TUTF8 IO CString {- | Extracts the protocol out of a given valid URI. The returned string must be freed using 'GI.GLib.Functions.free'. -} uriGetProtocol :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@uri@/: A URI string -} -> m (Maybe T.Text) {- ^ __Returns:__ The protocol for this URI. -} uriGetProtocol uri = liftIO $ do uri' <- textToCString uri result <- gst_uri_get_protocol uri' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' freeMem uri' return maybeResult #if ENABLE_OVERLOADING #endif -- method Uri::has_protocol -- method type : MemberFunction -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a protocol string (e.g. \"http\")", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_has_protocol" gst_uri_has_protocol :: CString -> -- uri : TBasicType TUTF8 CString -> -- protocol : TBasicType TUTF8 IO CInt {- | Checks if the protocol of a given valid URI matches /@protocol@/. -} uriHasProtocol :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@uri@/: a URI string -} -> T.Text {- ^ /@protocol@/: a protocol string (e.g. \"http\") -} -> m Bool {- ^ __Returns:__ 'True' if the protocol matches. -} uriHasProtocol uri protocol = liftIO $ do uri' <- textToCString uri protocol' <- textToCString protocol result <- gst_uri_has_protocol uri' protocol' let result' = (/= 0) result freeMem uri' freeMem protocol' return result' #if ENABLE_OVERLOADING #endif -- method Uri::is_valid -- method type : MemberFunction -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A URI string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_is_valid" gst_uri_is_valid :: CString -> -- uri : TBasicType TUTF8 IO CInt {- | Tests if the given string is a valid URI identifier. URIs start with a valid scheme followed by \":\" and maybe a string identifying the location. -} uriIsValid :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@uri@/: A URI string -} -> m Bool {- ^ __Returns:__ 'True' if the string is a valid URI -} uriIsValid uri = liftIO $ do uri' <- textToCString uri result <- gst_uri_is_valid uri' let result' = (/= 0) result freeMem uri' return result' #if ENABLE_OVERLOADING #endif -- method Uri::join_strings -- method type : MemberFunction -- Args : [Arg {argCName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The percent-encoded base URI.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The percent-encoded reference URI to join to the @base_uri.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_uri_join_strings" gst_uri_join_strings :: CString -> -- base_uri : TBasicType TUTF8 CString -> -- ref_uri : TBasicType TUTF8 IO CString {- | This is a convenience function to join two URI strings and return the result. The returned string should be 'GI.GLib.Functions.free'\'d after use. /Since: 1.6/ -} uriJoinStrings :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@baseUri@/: The percent-encoded base URI. -} -> T.Text {- ^ /@refUri@/: The percent-encoded reference URI to join to the /@baseUri@/. -} -> m T.Text {- ^ __Returns:__ A string representing the percent-encoded join of the two URIs. -} uriJoinStrings baseUri refUri = liftIO $ do baseUri' <- textToCString baseUri refUri' <- textToCString refUri result <- gst_uri_join_strings baseUri' refUri' checkUnexpectedReturnNULL "uriJoinStrings" result result' <- cstringToText result freeMem result freeMem baseUri' freeMem refUri' return result' #if ENABLE_OVERLOADING #endif -- method Uri::protocol_is_supported -- method type : MemberFunction -- Args : [Arg {argCName = "type", argType = TInterface (Name {namespace = "Gst", name = "URIType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether to check for a source or a sink", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Protocol that should be checked for (e.g. \"http\" or \"smb\")", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_protocol_is_supported" gst_uri_protocol_is_supported :: CUInt -> -- type : TInterface (Name {namespace = "Gst", name = "URIType"}) CString -> -- protocol : TBasicType TUTF8 IO CInt {- | Checks if an element exists that supports the given URI protocol. Note that a positive return value does not imply that a subsequent call to 'GI.Gst.Objects.Element.elementMakeFromUri' is guaranteed to work. -} uriProtocolIsSupported :: (B.CallStack.HasCallStack, MonadIO m) => Gst.Enums.URIType {- ^ /@type@/: Whether to check for a source or a sink -} -> T.Text {- ^ /@protocol@/: Protocol that should be checked for (e.g. \"http\" or \"smb\") -} -> m Bool {- ^ __Returns:__ 'True' -} uriProtocolIsSupported type_ protocol = liftIO $ do let type_' = (fromIntegral . fromEnum) type_ protocol' <- textToCString protocol result <- gst_uri_protocol_is_supported type_' protocol' let result' = (/= 0) result freeMem protocol' return result' #if ENABLE_OVERLOADING #endif -- method Uri::protocol_is_valid -- method type : MemberFunction -- Args : [Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_uri_protocol_is_valid" gst_uri_protocol_is_valid :: CString -> -- protocol : TBasicType TUTF8 IO CInt {- | Tests if the given string is a valid protocol identifier. Protocols must consist of alphanumeric characters, \'+\', \'-\' and \'.\' and must start with a alphabetic character. See RFC 3986 Section 3.1. -} uriProtocolIsValid :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@protocol@/: A string -} -> m Bool {- ^ __Returns:__ 'True' if the string is a valid protocol identifier, 'False' otherwise. -} uriProtocolIsValid protocol = liftIO $ do protocol' <- textToCString protocol result <- gst_uri_protocol_is_valid protocol' let result' = (/= 0) result freeMem protocol' return result' #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveUriMethod (t :: Symbol) (o :: *) :: * where ResolveUriMethod "appendPath" o = UriAppendPathMethodInfo ResolveUriMethod "appendPathSegment" o = UriAppendPathSegmentMethodInfo ResolveUriMethod "equal" o = UriEqualMethodInfo ResolveUriMethod "fromStringWithBase" o = UriFromStringWithBaseMethodInfo ResolveUriMethod "isNormalized" o = UriIsNormalizedMethodInfo ResolveUriMethod "isWritable" o = UriIsWritableMethodInfo ResolveUriMethod "join" o = UriJoinMethodInfo ResolveUriMethod "makeWritable" o = UriMakeWritableMethodInfo ResolveUriMethod "newWithBase" o = UriNewWithBaseMethodInfo ResolveUriMethod "normalize" o = UriNormalizeMethodInfo ResolveUriMethod "queryHasKey" o = UriQueryHasKeyMethodInfo ResolveUriMethod "removeQueryKey" o = UriRemoveQueryKeyMethodInfo ResolveUriMethod "toString" o = UriToStringMethodInfo ResolveUriMethod "getFragment" o = UriGetFragmentMethodInfo ResolveUriMethod "getHost" o = UriGetHostMethodInfo ResolveUriMethod "getMediaFragmentTable" o = UriGetMediaFragmentTableMethodInfo ResolveUriMethod "getPath" o = UriGetPathMethodInfo ResolveUriMethod "getPathSegments" o = UriGetPathSegmentsMethodInfo ResolveUriMethod "getPathString" o = UriGetPathStringMethodInfo ResolveUriMethod "getPort" o = UriGetPortMethodInfo ResolveUriMethod "getQueryKeys" o = UriGetQueryKeysMethodInfo ResolveUriMethod "getQueryString" o = UriGetQueryStringMethodInfo ResolveUriMethod "getQueryTable" o = UriGetQueryTableMethodInfo ResolveUriMethod "getQueryValue" o = UriGetQueryValueMethodInfo ResolveUriMethod "getScheme" o = UriGetSchemeMethodInfo ResolveUriMethod "getUserinfo" o = UriGetUserinfoMethodInfo ResolveUriMethod "setFragment" o = UriSetFragmentMethodInfo ResolveUriMethod "setHost" o = UriSetHostMethodInfo ResolveUriMethod "setPath" o = UriSetPathMethodInfo ResolveUriMethod "setPathSegments" o = UriSetPathSegmentsMethodInfo ResolveUriMethod "setPathString" o = UriSetPathStringMethodInfo ResolveUriMethod "setPort" o = UriSetPortMethodInfo ResolveUriMethod "setQueryString" o = UriSetQueryStringMethodInfo ResolveUriMethod "setQueryTable" o = UriSetQueryTableMethodInfo ResolveUriMethod "setQueryValue" o = UriSetQueryValueMethodInfo ResolveUriMethod "setScheme" o = UriSetSchemeMethodInfo ResolveUriMethod "setUserinfo" o = UriSetUserinfoMethodInfo ResolveUriMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveUriMethod t Uri, O.MethodInfo info Uri p) => OL.IsLabel t (Uri -> 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