gi-gio-0.2.46.14: GI/Gio/Objects/NetworkAddress.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gio.Objects.NetworkAddress
(
-- * Exported types
NetworkAddress(..) ,
NetworkAddressK ,
toNetworkAddress ,
noNetworkAddress ,
-- * Methods
-- ** networkAddressGetHostname
NetworkAddressGetHostnameMethodInfo ,
networkAddressGetHostname ,
-- ** networkAddressGetPort
NetworkAddressGetPortMethodInfo ,
networkAddressGetPort ,
-- ** networkAddressGetScheme
NetworkAddressGetSchemeMethodInfo ,
networkAddressGetScheme ,
-- ** networkAddressNew
networkAddressNew ,
-- ** networkAddressNewLoopback
networkAddressNewLoopback ,
-- ** networkAddressParse
networkAddressParse ,
-- ** networkAddressParseUri
networkAddressParseUri ,
-- * Properties
-- ** Hostname
NetworkAddressHostnamePropertyInfo ,
constructNetworkAddressHostname ,
getNetworkAddressHostname ,
networkAddressHostname ,
-- ** Port
NetworkAddressPortPropertyInfo ,
constructNetworkAddressPort ,
getNetworkAddressPort ,
networkAddressPort ,
-- ** Scheme
NetworkAddressSchemePropertyInfo ,
constructNetworkAddressScheme ,
getNetworkAddressScheme ,
networkAddressScheme ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject
newtype NetworkAddress = NetworkAddress (ForeignPtr NetworkAddress)
foreign import ccall "g_network_address_get_type"
c_g_network_address_get_type :: IO GType
type instance ParentTypes NetworkAddress = NetworkAddressParentTypes
type NetworkAddressParentTypes = '[GObject.Object, SocketConnectable]
instance GObject NetworkAddress where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_network_address_get_type
class GObject o => NetworkAddressK o
instance (GObject o, IsDescendantOf NetworkAddress o) => NetworkAddressK o
toNetworkAddress :: NetworkAddressK o => o -> IO NetworkAddress
toNetworkAddress = unsafeCastTo NetworkAddress
noNetworkAddress :: Maybe NetworkAddress
noNetworkAddress = Nothing
type family ResolveNetworkAddressMethod (t :: Symbol) (o :: *) :: * where
ResolveNetworkAddressMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
ResolveNetworkAddressMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
ResolveNetworkAddressMethod "enumerate" o = SocketConnectableEnumerateMethodInfo
ResolveNetworkAddressMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
ResolveNetworkAddressMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
ResolveNetworkAddressMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
ResolveNetworkAddressMethod "notify" o = GObject.ObjectNotifyMethodInfo
ResolveNetworkAddressMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
ResolveNetworkAddressMethod "proxyEnumerate" o = SocketConnectableProxyEnumerateMethodInfo
ResolveNetworkAddressMethod "ref" o = GObject.ObjectRefMethodInfo
ResolveNetworkAddressMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
ResolveNetworkAddressMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
ResolveNetworkAddressMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
ResolveNetworkAddressMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
ResolveNetworkAddressMethod "stealData" o = GObject.ObjectStealDataMethodInfo
ResolveNetworkAddressMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
ResolveNetworkAddressMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
ResolveNetworkAddressMethod "unref" o = GObject.ObjectUnrefMethodInfo
ResolveNetworkAddressMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
ResolveNetworkAddressMethod "getData" o = GObject.ObjectGetDataMethodInfo
ResolveNetworkAddressMethod "getHostname" o = NetworkAddressGetHostnameMethodInfo
ResolveNetworkAddressMethod "getPort" o = NetworkAddressGetPortMethodInfo
ResolveNetworkAddressMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
ResolveNetworkAddressMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
ResolveNetworkAddressMethod "getScheme" o = NetworkAddressGetSchemeMethodInfo
ResolveNetworkAddressMethod "setData" o = GObject.ObjectSetDataMethodInfo
ResolveNetworkAddressMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
ResolveNetworkAddressMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveNetworkAddressMethod t NetworkAddress, MethodInfo info NetworkAddress p) => IsLabelProxy t (NetworkAddress -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveNetworkAddressMethod t NetworkAddress, MethodInfo info NetworkAddress p) => IsLabel t (NetworkAddress -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
-- VVV Prop "hostname"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Just False,Nothing)
getNetworkAddressHostname :: (MonadIO m, NetworkAddressK o) => o -> m T.Text
getNetworkAddressHostname obj = liftIO $ checkUnexpectedNothing "getNetworkAddressHostname" $ getObjectPropertyString obj "hostname"
constructNetworkAddressHostname :: T.Text -> IO ([Char], GValue)
constructNetworkAddressHostname val = constructObjectPropertyString "hostname" (Just val)
data NetworkAddressHostnamePropertyInfo
instance AttrInfo NetworkAddressHostnamePropertyInfo where
type AttrAllowedOps NetworkAddressHostnamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint NetworkAddressHostnamePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint NetworkAddressHostnamePropertyInfo = NetworkAddressK
type AttrGetType NetworkAddressHostnamePropertyInfo = T.Text
type AttrLabel NetworkAddressHostnamePropertyInfo = "hostname"
attrGet _ = getNetworkAddressHostname
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressHostname
attrClear _ = undefined
-- VVV Prop "port"
-- Type: TBasicType TUInt
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
getNetworkAddressPort :: (MonadIO m, NetworkAddressK o) => o -> m Word32
getNetworkAddressPort obj = liftIO $ getObjectPropertyUInt32 obj "port"
constructNetworkAddressPort :: Word32 -> IO ([Char], GValue)
constructNetworkAddressPort val = constructObjectPropertyUInt32 "port" val
data NetworkAddressPortPropertyInfo
instance AttrInfo NetworkAddressPortPropertyInfo where
type AttrAllowedOps NetworkAddressPortPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint NetworkAddressPortPropertyInfo = (~) Word32
type AttrBaseTypeConstraint NetworkAddressPortPropertyInfo = NetworkAddressK
type AttrGetType NetworkAddressPortPropertyInfo = Word32
type AttrLabel NetworkAddressPortPropertyInfo = "port"
attrGet _ = getNetworkAddressPort
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressPort
attrClear _ = undefined
-- VVV Prop "scheme"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Just False,Nothing)
getNetworkAddressScheme :: (MonadIO m, NetworkAddressK o) => o -> m T.Text
getNetworkAddressScheme obj = liftIO $ checkUnexpectedNothing "getNetworkAddressScheme" $ getObjectPropertyString obj "scheme"
constructNetworkAddressScheme :: T.Text -> IO ([Char], GValue)
constructNetworkAddressScheme val = constructObjectPropertyString "scheme" (Just val)
data NetworkAddressSchemePropertyInfo
instance AttrInfo NetworkAddressSchemePropertyInfo where
type AttrAllowedOps NetworkAddressSchemePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint NetworkAddressSchemePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint NetworkAddressSchemePropertyInfo = NetworkAddressK
type AttrGetType NetworkAddressSchemePropertyInfo = T.Text
type AttrLabel NetworkAddressSchemePropertyInfo = "scheme"
attrGet _ = getNetworkAddressScheme
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressScheme
attrClear _ = undefined
type instance AttributeList NetworkAddress = NetworkAddressAttributeList
type NetworkAddressAttributeList = ('[ '("hostname", NetworkAddressHostnamePropertyInfo), '("port", NetworkAddressPortPropertyInfo), '("scheme", NetworkAddressSchemePropertyInfo)] :: [(Symbol, *)])
networkAddressHostname :: AttrLabelProxy "hostname"
networkAddressHostname = AttrLabelProxy
networkAddressPort :: AttrLabelProxy "port"
networkAddressPort = AttrLabelProxy
networkAddressScheme :: AttrLabelProxy "scheme"
networkAddressScheme = AttrLabelProxy
type instance SignalList NetworkAddress = NetworkAddressSignalList
type NetworkAddressSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method NetworkAddress::new
-- method type : Constructor
-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Gio" "NetworkAddress")
-- throws : False
-- Skip return : False
foreign import ccall "g_network_address_new" g_network_address_new ::
CString -> -- hostname : TBasicType TUTF8
Word16 -> -- port : TBasicType TUInt16
IO (Ptr NetworkAddress)
networkAddressNew ::
(MonadIO m) =>
T.Text -- hostname
-> Word16 -- port
-> m NetworkAddress -- result
networkAddressNew hostname port = liftIO $ do
hostname' <- textToCString hostname
result <- g_network_address_new hostname' port
checkUnexpectedReturnNULL "g_network_address_new" result
result' <- (wrapObject NetworkAddress) result
freeMem hostname'
return result'
-- method NetworkAddress::new_loopback
-- method type : Constructor
-- Args : [Arg {argCName = "port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Gio" "NetworkAddress")
-- throws : False
-- Skip return : False
foreign import ccall "g_network_address_new_loopback" g_network_address_new_loopback ::
Word16 -> -- port : TBasicType TUInt16
IO (Ptr NetworkAddress)
networkAddressNewLoopback ::
(MonadIO m) =>
Word16 -- port
-> m NetworkAddress -- result
networkAddressNewLoopback port = liftIO $ do
result <- g_network_address_new_loopback port
checkUnexpectedReturnNULL "g_network_address_new_loopback" result
result' <- (wrapObject NetworkAddress) result
return result'
-- method NetworkAddress::get_hostname
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "NetworkAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "g_network_address_get_hostname" g_network_address_get_hostname ::
Ptr NetworkAddress -> -- _obj : TInterface "Gio" "NetworkAddress"
IO CString
networkAddressGetHostname ::
(MonadIO m, NetworkAddressK a) =>
a -- _obj
-> m T.Text -- result
networkAddressGetHostname _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_network_address_get_hostname _obj'
checkUnexpectedReturnNULL "g_network_address_get_hostname" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data NetworkAddressGetHostnameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, NetworkAddressK a) => MethodInfo NetworkAddressGetHostnameMethodInfo a signature where
overloadedMethod _ = networkAddressGetHostname
-- method NetworkAddress::get_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "NetworkAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt16)
-- throws : False
-- Skip return : False
foreign import ccall "g_network_address_get_port" g_network_address_get_port ::
Ptr NetworkAddress -> -- _obj : TInterface "Gio" "NetworkAddress"
IO Word16
networkAddressGetPort ::
(MonadIO m, NetworkAddressK a) =>
a -- _obj
-> m Word16 -- result
networkAddressGetPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_network_address_get_port _obj'
touchManagedPtr _obj
return result
data NetworkAddressGetPortMethodInfo
instance (signature ~ (m Word16), MonadIO m, NetworkAddressK a) => MethodInfo NetworkAddressGetPortMethodInfo a signature where
overloadedMethod _ = networkAddressGetPort
-- method NetworkAddress::get_scheme
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "NetworkAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "g_network_address_get_scheme" g_network_address_get_scheme ::
Ptr NetworkAddress -> -- _obj : TInterface "Gio" "NetworkAddress"
IO CString
networkAddressGetScheme ::
(MonadIO m, NetworkAddressK a) =>
a -- _obj
-> m T.Text -- result
networkAddressGetScheme _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_network_address_get_scheme _obj'
checkUnexpectedReturnNULL "g_network_address_get_scheme" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data NetworkAddressGetSchemeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, NetworkAddressK a) => MethodInfo NetworkAddressGetSchemeMethodInfo a signature where
overloadedMethod _ = networkAddressGetScheme
-- method NetworkAddress::parse
-- method type : MemberFunction
-- Args : [Arg {argCName = "host_and_port", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Gio" "NetworkAddress")
-- throws : True
-- Skip return : False
foreign import ccall "g_network_address_parse" g_network_address_parse ::
CString -> -- host_and_port : TBasicType TUTF8
Word16 -> -- default_port : TBasicType TUInt16
Ptr (Ptr GError) -> -- error
IO (Ptr NetworkAddress)
networkAddressParse ::
(MonadIO m) =>
T.Text -- hostAndPort
-> Word16 -- defaultPort
-> m NetworkAddress -- result
networkAddressParse hostAndPort defaultPort = liftIO $ do
hostAndPort' <- textToCString hostAndPort
onException (do
result <- propagateGError $ g_network_address_parse hostAndPort' defaultPort
checkUnexpectedReturnNULL "g_network_address_parse" result
result' <- (wrapObject NetworkAddress) result
freeMem hostAndPort'
return result'
) (do
freeMem hostAndPort'
)
-- method NetworkAddress::parse_uri
-- method type : MemberFunction
-- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Gio" "NetworkAddress")
-- throws : True
-- Skip return : False
foreign import ccall "g_network_address_parse_uri" g_network_address_parse_uri ::
CString -> -- uri : TBasicType TUTF8
Word16 -> -- default_port : TBasicType TUInt16
Ptr (Ptr GError) -> -- error
IO (Ptr NetworkAddress)
networkAddressParseUri ::
(MonadIO m) =>
T.Text -- uri
-> Word16 -- defaultPort
-> m NetworkAddress -- result
networkAddressParseUri uri defaultPort = liftIO $ do
uri' <- textToCString uri
onException (do
result <- propagateGError $ g_network_address_parse_uri uri' defaultPort
checkUnexpectedReturnNULL "g_network_address_parse_uri" result
result' <- (wrapObject NetworkAddress) result
freeMem uri'
return result'
) (do
freeMem uri'
)