module GI.Gio.Objects.UnixSocketAddress
(
UnixSocketAddress(..) ,
UnixSocketAddressK ,
toUnixSocketAddress ,
noUnixSocketAddress ,
unixSocketAddressAbstractNamesSupported ,
unixSocketAddressGetAddressType ,
unixSocketAddressGetIsAbstract ,
unixSocketAddressGetPath ,
unixSocketAddressGetPathLen ,
unixSocketAddressNew ,
unixSocketAddressNewAbstract ,
unixSocketAddressNewWithType ,
UnixSocketAddressAbstractPropertyInfo ,
constructUnixSocketAddressAbstract ,
getUnixSocketAddressAbstract ,
UnixSocketAddressAddressTypePropertyInfo,
constructUnixSocketAddressAddressType ,
getUnixSocketAddressAddressType ,
UnixSocketAddressPathPropertyInfo ,
constructUnixSocketAddressPath ,
getUnixSocketAddressPath ,
UnixSocketAddressPathAsArrayPropertyInfo,
constructUnixSocketAddressPathAsArray ,
getUnixSocketAddressPathAsArray ,
) 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 UnixSocketAddress = UnixSocketAddress (ForeignPtr UnixSocketAddress)
foreign import ccall "g_unix_socket_address_get_type"
c_g_unix_socket_address_get_type :: IO GType
type instance ParentTypes UnixSocketAddress = UnixSocketAddressParentTypes
type UnixSocketAddressParentTypes = '[SocketAddress, GObject.Object, SocketConnectable]
instance GObject UnixSocketAddress where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_unix_socket_address_get_type
class GObject o => UnixSocketAddressK o
instance (GObject o, IsDescendantOf UnixSocketAddress o) => UnixSocketAddressK o
toUnixSocketAddress :: UnixSocketAddressK o => o -> IO UnixSocketAddress
toUnixSocketAddress = unsafeCastTo UnixSocketAddress
noUnixSocketAddress :: Maybe UnixSocketAddress
noUnixSocketAddress = Nothing
getUnixSocketAddressAbstract :: (MonadIO m, UnixSocketAddressK o) => o -> m Bool
getUnixSocketAddressAbstract obj = liftIO $ getObjectPropertyBool obj "abstract"
constructUnixSocketAddressAbstract :: Bool -> IO ([Char], GValue)
constructUnixSocketAddressAbstract val = constructObjectPropertyBool "abstract" val
data UnixSocketAddressAbstractPropertyInfo
instance AttrInfo UnixSocketAddressAbstractPropertyInfo where
type AttrAllowedOps UnixSocketAddressAbstractPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint UnixSocketAddressAbstractPropertyInfo = (~) Bool
type AttrBaseTypeConstraint UnixSocketAddressAbstractPropertyInfo = UnixSocketAddressK
type AttrGetType UnixSocketAddressAbstractPropertyInfo = Bool
type AttrLabel UnixSocketAddressAbstractPropertyInfo = "UnixSocketAddress::abstract"
attrGet _ = getUnixSocketAddressAbstract
attrSet _ = undefined
attrConstruct _ = constructUnixSocketAddressAbstract
getUnixSocketAddressAddressType :: (MonadIO m, UnixSocketAddressK o) => o -> m UnixSocketAddressType
getUnixSocketAddressAddressType obj = liftIO $ getObjectPropertyEnum obj "address-type"
constructUnixSocketAddressAddressType :: UnixSocketAddressType -> IO ([Char], GValue)
constructUnixSocketAddressAddressType val = constructObjectPropertyEnum "address-type" val
data UnixSocketAddressAddressTypePropertyInfo
instance AttrInfo UnixSocketAddressAddressTypePropertyInfo where
type AttrAllowedOps UnixSocketAddressAddressTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint UnixSocketAddressAddressTypePropertyInfo = (~) UnixSocketAddressType
type AttrBaseTypeConstraint UnixSocketAddressAddressTypePropertyInfo = UnixSocketAddressK
type AttrGetType UnixSocketAddressAddressTypePropertyInfo = UnixSocketAddressType
type AttrLabel UnixSocketAddressAddressTypePropertyInfo = "UnixSocketAddress::address-type"
attrGet _ = getUnixSocketAddressAddressType
attrSet _ = undefined
attrConstruct _ = constructUnixSocketAddressAddressType
getUnixSocketAddressPath :: (MonadIO m, UnixSocketAddressK o) => o -> m T.Text
getUnixSocketAddressPath obj = liftIO $ getObjectPropertyString obj "path"
constructUnixSocketAddressPath :: T.Text -> IO ([Char], GValue)
constructUnixSocketAddressPath val = constructObjectPropertyString "path" val
data UnixSocketAddressPathPropertyInfo
instance AttrInfo UnixSocketAddressPathPropertyInfo where
type AttrAllowedOps UnixSocketAddressPathPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint UnixSocketAddressPathPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint UnixSocketAddressPathPropertyInfo = UnixSocketAddressK
type AttrGetType UnixSocketAddressPathPropertyInfo = T.Text
type AttrLabel UnixSocketAddressPathPropertyInfo = "UnixSocketAddress::path"
attrGet _ = getUnixSocketAddressPath
attrSet _ = undefined
attrConstruct _ = constructUnixSocketAddressPath
getUnixSocketAddressPathAsArray :: (MonadIO m, UnixSocketAddressK o) => o -> m ByteString
getUnixSocketAddressPathAsArray obj = liftIO $ getObjectPropertyByteArray obj "path-as-array"
constructUnixSocketAddressPathAsArray :: ByteString -> IO ([Char], GValue)
constructUnixSocketAddressPathAsArray val = constructObjectPropertyByteArray "path-as-array" val
data UnixSocketAddressPathAsArrayPropertyInfo
instance AttrInfo UnixSocketAddressPathAsArrayPropertyInfo where
type AttrAllowedOps UnixSocketAddressPathAsArrayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint UnixSocketAddressPathAsArrayPropertyInfo = (~) ByteString
type AttrBaseTypeConstraint UnixSocketAddressPathAsArrayPropertyInfo = UnixSocketAddressK
type AttrGetType UnixSocketAddressPathAsArrayPropertyInfo = ByteString
type AttrLabel UnixSocketAddressPathAsArrayPropertyInfo = "UnixSocketAddress::path-as-array"
attrGet _ = getUnixSocketAddressPathAsArray
attrSet _ = undefined
attrConstruct _ = constructUnixSocketAddressPathAsArray
type instance AttributeList UnixSocketAddress = UnixSocketAddressAttributeList
type UnixSocketAddressAttributeList = ('[ '("abstract", UnixSocketAddressAbstractPropertyInfo), '("address-type", UnixSocketAddressAddressTypePropertyInfo), '("family", SocketAddressFamilyPropertyInfo), '("path", UnixSocketAddressPathPropertyInfo), '("path-as-array", UnixSocketAddressPathAsArrayPropertyInfo)] :: [(Symbol, *)])
type instance SignalList UnixSocketAddress = UnixSocketAddressSignalList
type UnixSocketAddressSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_unix_socket_address_new" g_unix_socket_address_new ::
CString ->
IO (Ptr UnixSocketAddress)
unixSocketAddressNew ::
(MonadIO m) =>
T.Text ->
m UnixSocketAddress
unixSocketAddressNew path = liftIO $ do
path' <- textToCString path
result <- g_unix_socket_address_new path'
checkUnexpectedReturnNULL "g_unix_socket_address_new" result
result' <- (wrapObject UnixSocketAddress) result
freeMem path'
return result'
foreign import ccall "g_unix_socket_address_new_abstract" g_unix_socket_address_new_abstract ::
Ptr Int8 ->
Int32 ->
IO (Ptr UnixSocketAddress)
unixSocketAddressNewAbstract ::
(MonadIO m) =>
[Int8] ->
m UnixSocketAddress
unixSocketAddressNewAbstract path = liftIO $ do
let path_len = fromIntegral $ length path
path' <- packStorableArray path
result <- g_unix_socket_address_new_abstract path' path_len
checkUnexpectedReturnNULL "g_unix_socket_address_new_abstract" result
result' <- (wrapObject UnixSocketAddress) result
freeMem path'
return result'
foreign import ccall "g_unix_socket_address_new_with_type" g_unix_socket_address_new_with_type ::
Ptr Int8 ->
Int32 ->
CUInt ->
IO (Ptr UnixSocketAddress)
unixSocketAddressNewWithType ::
(MonadIO m) =>
[Int8] ->
UnixSocketAddressType ->
m UnixSocketAddress
unixSocketAddressNewWithType path type_ = liftIO $ do
let path_len = fromIntegral $ length path
path' <- packStorableArray path
let type_' = (fromIntegral . fromEnum) type_
result <- g_unix_socket_address_new_with_type path' path_len type_'
checkUnexpectedReturnNULL "g_unix_socket_address_new_with_type" result
result' <- (wrapObject UnixSocketAddress) result
freeMem path'
return result'
foreign import ccall "g_unix_socket_address_get_address_type" g_unix_socket_address_get_address_type ::
Ptr UnixSocketAddress ->
IO CUInt
unixSocketAddressGetAddressType ::
(MonadIO m, UnixSocketAddressK a) =>
a ->
m UnixSocketAddressType
unixSocketAddressGetAddressType _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_unix_socket_address_get_address_type _obj'
let result' = (toEnum . fromIntegral) result
touchManagedPtr _obj
return result'
foreign import ccall "g_unix_socket_address_get_is_abstract" g_unix_socket_address_get_is_abstract ::
Ptr UnixSocketAddress ->
IO CInt
unixSocketAddressGetIsAbstract ::
(MonadIO m, UnixSocketAddressK a) =>
a ->
m Bool
unixSocketAddressGetIsAbstract _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_unix_socket_address_get_is_abstract _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "g_unix_socket_address_get_path" g_unix_socket_address_get_path ::
Ptr UnixSocketAddress ->
IO CString
unixSocketAddressGetPath ::
(MonadIO m, UnixSocketAddressK a) =>
a ->
m T.Text
unixSocketAddressGetPath _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_unix_socket_address_get_path _obj'
checkUnexpectedReturnNULL "g_unix_socket_address_get_path" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
foreign import ccall "g_unix_socket_address_get_path_len" g_unix_socket_address_get_path_len ::
Ptr UnixSocketAddress ->
IO Word64
unixSocketAddressGetPathLen ::
(MonadIO m, UnixSocketAddressK a) =>
a ->
m Word64
unixSocketAddressGetPathLen _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_unix_socket_address_get_path_len _obj'
touchManagedPtr _obj
return result
foreign import ccall "g_unix_socket_address_abstract_names_supported" g_unix_socket_address_abstract_names_supported ::
IO CInt
unixSocketAddressAbstractNamesSupported ::
(MonadIO m) =>
m Bool
unixSocketAddressAbstractNamesSupported = liftIO $ do
result <- g_unix_socket_address_abstract_names_supported
let result' = (/= 0) result
return result'