module GI.Gio.Objects.NetworkAddress
(
NetworkAddress(..) ,
NetworkAddressK ,
toNetworkAddress ,
noNetworkAddress ,
networkAddressGetHostname ,
networkAddressGetPort ,
networkAddressGetScheme ,
networkAddressNew ,
networkAddressNewLoopback ,
networkAddressParse ,
networkAddressParseUri ,
NetworkAddressHostnamePropertyInfo ,
constructNetworkAddressHostname ,
getNetworkAddressHostname ,
NetworkAddressPortPropertyInfo ,
constructNetworkAddressPort ,
getNetworkAddressPort ,
NetworkAddressSchemePropertyInfo ,
constructNetworkAddressScheme ,
getNetworkAddressScheme ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.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
getNetworkAddressHostname :: (MonadIO m, NetworkAddressK o) => o -> m T.Text
getNetworkAddressHostname obj = liftIO $ getObjectPropertyString obj "hostname"
constructNetworkAddressHostname :: T.Text -> IO ([Char], GValue)
constructNetworkAddressHostname val = constructObjectPropertyString "hostname" val
data NetworkAddressHostnamePropertyInfo
instance AttrInfo NetworkAddressHostnamePropertyInfo where
type AttrAllowedOps NetworkAddressHostnamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint NetworkAddressHostnamePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint NetworkAddressHostnamePropertyInfo = NetworkAddressK
type AttrGetType NetworkAddressHostnamePropertyInfo = T.Text
type AttrLabel NetworkAddressHostnamePropertyInfo = "NetworkAddress::hostname"
attrGet _ = getNetworkAddressHostname
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressHostname
getNetworkAddressPort :: (MonadIO m, NetworkAddressK o) => o -> m Word32
getNetworkAddressPort obj = liftIO $ getObjectPropertyCUInt obj "port"
constructNetworkAddressPort :: Word32 -> IO ([Char], GValue)
constructNetworkAddressPort val = constructObjectPropertyCUInt "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 = "NetworkAddress::port"
attrGet _ = getNetworkAddressPort
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressPort
getNetworkAddressScheme :: (MonadIO m, NetworkAddressK o) => o -> m T.Text
getNetworkAddressScheme obj = liftIO $ getObjectPropertyString obj "scheme"
constructNetworkAddressScheme :: T.Text -> IO ([Char], GValue)
constructNetworkAddressScheme val = constructObjectPropertyString "scheme" val
data NetworkAddressSchemePropertyInfo
instance AttrInfo NetworkAddressSchemePropertyInfo where
type AttrAllowedOps NetworkAddressSchemePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint NetworkAddressSchemePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint NetworkAddressSchemePropertyInfo = NetworkAddressK
type AttrGetType NetworkAddressSchemePropertyInfo = T.Text
type AttrLabel NetworkAddressSchemePropertyInfo = "NetworkAddress::scheme"
attrGet _ = getNetworkAddressScheme
attrSet _ = undefined
attrConstruct _ = constructNetworkAddressScheme
type instance AttributeList NetworkAddress = NetworkAddressAttributeList
type NetworkAddressAttributeList = ('[ '("hostname", NetworkAddressHostnamePropertyInfo), '("port", NetworkAddressPortPropertyInfo), '("scheme", NetworkAddressSchemePropertyInfo)] :: [(Symbol, *)])
type instance SignalList NetworkAddress = NetworkAddressSignalList
type NetworkAddressSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_network_address_new" g_network_address_new ::
CString ->
Word16 ->
IO (Ptr NetworkAddress)
networkAddressNew ::
(MonadIO m) =>
T.Text ->
Word16 ->
m NetworkAddress
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'
foreign import ccall "g_network_address_new_loopback" g_network_address_new_loopback ::
Word16 ->
IO (Ptr NetworkAddress)
networkAddressNewLoopback ::
(MonadIO m) =>
Word16 ->
m NetworkAddress
networkAddressNewLoopback port = liftIO $ do
result <- g_network_address_new_loopback port
checkUnexpectedReturnNULL "g_network_address_new_loopback" result
result' <- (wrapObject NetworkAddress) result
return result'
foreign import ccall "g_network_address_get_hostname" g_network_address_get_hostname ::
Ptr NetworkAddress ->
IO CString
networkAddressGetHostname ::
(MonadIO m, NetworkAddressK a) =>
a ->
m T.Text
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'
foreign import ccall "g_network_address_get_port" g_network_address_get_port ::
Ptr NetworkAddress ->
IO Word16
networkAddressGetPort ::
(MonadIO m, NetworkAddressK a) =>
a ->
m Word16
networkAddressGetPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_network_address_get_port _obj'
touchManagedPtr _obj
return result
foreign import ccall "g_network_address_get_scheme" g_network_address_get_scheme ::
Ptr NetworkAddress ->
IO CString
networkAddressGetScheme ::
(MonadIO m, NetworkAddressK a) =>
a ->
m T.Text
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'
foreign import ccall "g_network_address_parse" g_network_address_parse ::
CString ->
Word16 ->
Ptr (Ptr GError) ->
IO (Ptr SocketConnectable)
networkAddressParse ::
(MonadIO m) =>
T.Text ->
Word16 ->
m SocketConnectable
networkAddressParse host_and_port default_port = liftIO $ do
host_and_port' <- textToCString host_and_port
onException (do
result <- propagateGError $ g_network_address_parse host_and_port' default_port
checkUnexpectedReturnNULL "g_network_address_parse" result
result' <- (wrapObject SocketConnectable) result
freeMem host_and_port'
return result'
) (do
freeMem host_and_port'
)
foreign import ccall "g_network_address_parse_uri" g_network_address_parse_uri ::
CString ->
Word16 ->
Ptr (Ptr GError) ->
IO (Ptr SocketConnectable)
networkAddressParseUri ::
(MonadIO m) =>
T.Text ->
Word16 ->
m SocketConnectable
networkAddressParseUri uri default_port = liftIO $ do
uri' <- textToCString uri
onException (do
result <- propagateGError $ g_network_address_parse_uri uri' default_port
checkUnexpectedReturnNULL "g_network_address_parse_uri" result
result' <- (wrapObject SocketConnectable) result
freeMem uri'
return result'
) (do
freeMem uri'
)