#define ENABLE_OVERLOADING \
(!defined(__HADDOCK_VERSION__))
module GI.Gio.Objects.UnixFDMessage
(
UnixFDMessage(..) ,
IsUnixFDMessage ,
toUnixFDMessage ,
noUnixFDMessage ,
#if ENABLE_OVERLOADING
UnixFDMessageAppendFdMethodInfo ,
#endif
unixFDMessageAppendFd ,
#if ENABLE_OVERLOADING
UnixFDMessageGetFdListMethodInfo ,
#endif
unixFDMessageGetFdList ,
unixFDMessageNew ,
unixFDMessageNewWithFdList ,
#if ENABLE_OVERLOADING
UnixFDMessageStealFdsMethodInfo ,
#endif
unixFDMessageStealFds ,
#if ENABLE_OVERLOADING
UnixFDMessageFdListPropertyInfo ,
#endif
constructUnixFDMessageFdList ,
getUnixFDMessageFdList ,
#if ENABLE_OVERLOADING
unixFDMessageFdList ,
#endif
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Objects.SocketControlMessage as Gio.SocketControlMessage
import {-# SOURCE #-} qualified GI.Gio.Objects.UnixFDList as Gio.UnixFDList
newtype UnixFDMessage = UnixFDMessage (ManagedPtr UnixFDMessage)
foreign import ccall "g_unix_fd_message_get_type"
c_g_unix_fd_message_get_type :: IO GType
instance GObject UnixFDMessage where
gobjectType :: UnixFDMessage -> IO GType
gobjectType _ = IO GType
c_g_unix_fd_message_get_type
class GObject o => IsUnixFDMessage o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError UnixFDMessage a) =>
IsUnixFDMessage a
#endif
instance IsUnixFDMessage UnixFDMessage
instance Gio.SocketControlMessage.IsSocketControlMessage UnixFDMessage
instance GObject.Object.IsObject UnixFDMessage
toUnixFDMessage :: (MonadIO m, IsUnixFDMessage o) => o -> m UnixFDMessage
toUnixFDMessage :: o -> m UnixFDMessage
toUnixFDMessage = IO UnixFDMessage -> m UnixFDMessage
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UnixFDMessage -> m UnixFDMessage)
-> (o -> IO UnixFDMessage) -> o -> m UnixFDMessage
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr UnixFDMessage -> UnixFDMessage)
-> o -> IO UnixFDMessage
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr UnixFDMessage -> UnixFDMessage
UnixFDMessage
noUnixFDMessage :: Maybe UnixFDMessage
noUnixFDMessage :: Maybe UnixFDMessage
noUnixFDMessage = Maybe UnixFDMessage
forall a. Maybe a
Nothing
#if ENABLE_OVERLOADING
type family ResolveUnixFDMessageMethod (t :: Symbol) (o :: *) :: * where
ResolveUnixFDMessageMethod "appendFd" o = UnixFDMessageAppendFdMethodInfo
ResolveUnixFDMessageMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveUnixFDMessageMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveUnixFDMessageMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveUnixFDMessageMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveUnixFDMessageMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveUnixFDMessageMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveUnixFDMessageMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveUnixFDMessageMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveUnixFDMessageMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveUnixFDMessageMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveUnixFDMessageMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveUnixFDMessageMethod "serialize" o = Gio.SocketControlMessage.SocketControlMessageSerializeMethodInfo
ResolveUnixFDMessageMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveUnixFDMessageMethod "stealFds" o = UnixFDMessageStealFdsMethodInfo
ResolveUnixFDMessageMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveUnixFDMessageMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveUnixFDMessageMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveUnixFDMessageMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveUnixFDMessageMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveUnixFDMessageMethod "getFdList" o = UnixFDMessageGetFdListMethodInfo
ResolveUnixFDMessageMethod "getLevel" o = Gio.SocketControlMessage.SocketControlMessageGetLevelMethodInfo
ResolveUnixFDMessageMethod "getMsgType" o = Gio.SocketControlMessage.SocketControlMessageGetMsgTypeMethodInfo
ResolveUnixFDMessageMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveUnixFDMessageMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveUnixFDMessageMethod "getSize" o = Gio.SocketControlMessage.SocketControlMessageGetSizeMethodInfo
ResolveUnixFDMessageMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveUnixFDMessageMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveUnixFDMessageMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveUnixFDMessageMethod t UnixFDMessage, O.MethodInfo info UnixFDMessage p) => O.IsLabelProxy t (UnixFDMessage -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveUnixFDMessageMethod t UnixFDMessage, O.MethodInfo info UnixFDMessage p) => O.IsLabel t (UnixFDMessage -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif
getUnixFDMessageFdList :: (MonadIO m, IsUnixFDMessage o) => o -> m Gio.UnixFDList.UnixFDList
getUnixFDMessageFdList :: o -> m UnixFDList
getUnixFDMessageFdList obj :: o
obj = IO UnixFDList -> m UnixFDList
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UnixFDList -> m UnixFDList) -> IO UnixFDList -> m UnixFDList
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe UnixFDList) -> IO UnixFDList
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing "getUnixFDMessageFdList" (IO (Maybe UnixFDList) -> IO UnixFDList)
-> IO (Maybe UnixFDList) -> IO UnixFDList
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr UnixFDList -> UnixFDList)
-> IO (Maybe UnixFDList)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
getObjectPropertyObject o
obj "fd-list" ManagedPtr UnixFDList -> UnixFDList
Gio.UnixFDList.UnixFDList
constructUnixFDMessageFdList :: (IsUnixFDMessage o, Gio.UnixFDList.IsUnixFDList a) => a -> IO (GValueConstruct o)
constructUnixFDMessageFdList :: a -> IO (GValueConstruct o)
constructUnixFDMessageFdList val :: a
val = String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
constructObjectPropertyObject "fd-list" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)
#if ENABLE_OVERLOADING
data UnixFDMessageFdListPropertyInfo
instance AttrInfo UnixFDMessageFdListPropertyInfo where
type AttrAllowedOps UnixFDMessageFdListPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint UnixFDMessageFdListPropertyInfo = Gio.UnixFDList.IsUnixFDList
type AttrBaseTypeConstraint UnixFDMessageFdListPropertyInfo = IsUnixFDMessage
type AttrGetType UnixFDMessageFdListPropertyInfo = Gio.UnixFDList.UnixFDList
type AttrLabel UnixFDMessageFdListPropertyInfo = "fd-list"
type AttrOrigin UnixFDMessageFdListPropertyInfo = UnixFDMessage
attrGet _ = getUnixFDMessageFdList
attrSet _ = undefined
attrConstruct _ = constructUnixFDMessageFdList
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList UnixFDMessage
type instance O.AttributeList UnixFDMessage = UnixFDMessageAttributeList
type UnixFDMessageAttributeList = ('[ '("fdList", UnixFDMessageFdListPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
unixFDMessageFdList :: AttrLabelProxy "fdList"
unixFDMessageFdList = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList UnixFDMessage = UnixFDMessageSignalList
type UnixFDMessageSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "g_unix_fd_message_new" g_unix_fd_message_new ::
IO (Ptr UnixFDMessage)
unixFDMessageNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m UnixFDMessage
unixFDMessageNew :: m UnixFDMessage
unixFDMessageNew = IO UnixFDMessage -> m UnixFDMessage
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UnixFDMessage -> m UnixFDMessage)
-> IO UnixFDMessage -> m UnixFDMessage
forall a b. (a -> b) -> a -> b
$ do
Ptr UnixFDMessage
result <- IO (Ptr UnixFDMessage)
g_unix_fd_message_new
Text -> Ptr UnixFDMessage -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "unixFDMessageNew" Ptr UnixFDMessage
result
UnixFDMessage
result' <- ((ManagedPtr UnixFDMessage -> UnixFDMessage)
-> Ptr UnixFDMessage -> IO UnixFDMessage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr UnixFDMessage -> UnixFDMessage
UnixFDMessage) Ptr UnixFDMessage
result
UnixFDMessage -> IO UnixFDMessage
forall (m :: * -> *) a. Monad m => a -> m a
return UnixFDMessage
result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "g_unix_fd_message_new_with_fd_list" g_unix_fd_message_new_with_fd_list ::
Ptr Gio.UnixFDList.UnixFDList ->
IO (Ptr UnixFDMessage)
unixFDMessageNewWithFdList ::
(B.CallStack.HasCallStack, MonadIO m, Gio.UnixFDList.IsUnixFDList a) =>
a
-> m UnixFDMessage
unixFDMessageNewWithFdList :: a -> m UnixFDMessage
unixFDMessageNewWithFdList fdList :: a
fdList = IO UnixFDMessage -> m UnixFDMessage
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UnixFDMessage -> m UnixFDMessage)
-> IO UnixFDMessage -> m UnixFDMessage
forall a b. (a -> b) -> a -> b
$ do
Ptr UnixFDList
fdList' <- a -> IO (Ptr UnixFDList)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fdList
Ptr UnixFDMessage
result <- Ptr UnixFDList -> IO (Ptr UnixFDMessage)
g_unix_fd_message_new_with_fd_list Ptr UnixFDList
fdList'
Text -> Ptr UnixFDMessage -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "unixFDMessageNewWithFdList" Ptr UnixFDMessage
result
UnixFDMessage
result' <- ((ManagedPtr UnixFDMessage -> UnixFDMessage)
-> Ptr UnixFDMessage -> IO UnixFDMessage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr UnixFDMessage -> UnixFDMessage
UnixFDMessage) Ptr UnixFDMessage
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fdList
UnixFDMessage -> IO UnixFDMessage
forall (m :: * -> *) a. Monad m => a -> m a
return UnixFDMessage
result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "g_unix_fd_message_append_fd" g_unix_fd_message_append_fd ::
Ptr UnixFDMessage ->
Int32 ->
Ptr (Ptr GError) ->
IO CInt
unixFDMessageAppendFd ::
(B.CallStack.HasCallStack, MonadIO m, IsUnixFDMessage a) =>
a
-> Int32
-> m ()
unixFDMessageAppendFd :: a -> Int32 -> m ()
unixFDMessageAppendFd message :: a
message fd :: Int32
fd = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr UnixFDMessage
message' <- a -> IO (Ptr UnixFDMessage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
message
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr UnixFDMessage -> Int32 -> Ptr (Ptr GError) -> IO CInt
g_unix_fd_message_append_fd Ptr UnixFDMessage
message' Int32
fd
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
message
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if ENABLE_OVERLOADING
data UnixFDMessageAppendFdMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsUnixFDMessage a) => O.MethodInfo UnixFDMessageAppendFdMethodInfo a signature where
overloadedMethod _ = unixFDMessageAppendFd
#endif
foreign import ccall "g_unix_fd_message_get_fd_list" g_unix_fd_message_get_fd_list ::
Ptr UnixFDMessage ->
IO (Ptr Gio.UnixFDList.UnixFDList)
unixFDMessageGetFdList ::
(B.CallStack.HasCallStack, MonadIO m, IsUnixFDMessage a) =>
a
-> m Gio.UnixFDList.UnixFDList
unixFDMessageGetFdList :: a -> m UnixFDList
unixFDMessageGetFdList message :: a
message = IO UnixFDList -> m UnixFDList
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UnixFDList -> m UnixFDList) -> IO UnixFDList -> m UnixFDList
forall a b. (a -> b) -> a -> b
$ do
Ptr UnixFDMessage
message' <- a -> IO (Ptr UnixFDMessage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
message
Ptr UnixFDList
result <- Ptr UnixFDMessage -> IO (Ptr UnixFDList)
g_unix_fd_message_get_fd_list Ptr UnixFDMessage
message'
Text -> Ptr UnixFDList -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "unixFDMessageGetFdList" Ptr UnixFDList
result
UnixFDList
result' <- ((ManagedPtr UnixFDList -> UnixFDList)
-> Ptr UnixFDList -> IO UnixFDList
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr UnixFDList -> UnixFDList
Gio.UnixFDList.UnixFDList) Ptr UnixFDList
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
message
UnixFDList -> IO UnixFDList
forall (m :: * -> *) a. Monad m => a -> m a
return UnixFDList
result'
#if ENABLE_OVERLOADING
data UnixFDMessageGetFdListMethodInfo
instance (signature ~ (m Gio.UnixFDList.UnixFDList), MonadIO m, IsUnixFDMessage a) => O.MethodInfo UnixFDMessageGetFdListMethodInfo a signature where
overloadedMethod _ = unixFDMessageGetFdList
#endif
foreign import ccall "g_unix_fd_message_steal_fds" g_unix_fd_message_steal_fds ::
Ptr UnixFDMessage ->
Ptr Int32 ->
IO (Ptr Int32)
unixFDMessageStealFds ::
(B.CallStack.HasCallStack, MonadIO m, IsUnixFDMessage a) =>
a
-> m [Int32]
unixFDMessageStealFds :: a -> m [Int32]
unixFDMessageStealFds message :: a
message = IO [Int32] -> m [Int32]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [Int32] -> m [Int32]) -> IO [Int32] -> m [Int32]
forall a b. (a -> b) -> a -> b
$ do
Ptr UnixFDMessage
message' <- a -> IO (Ptr UnixFDMessage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
message
Ptr Int32
length_ <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
Ptr Int32
result <- Ptr UnixFDMessage -> Ptr Int32 -> IO (Ptr Int32)
g_unix_fd_message_steal_fds Ptr UnixFDMessage
message' Ptr Int32
length_
Int32
length_' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
length_
Text -> Ptr Int32 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "unixFDMessageStealFds" Ptr Int32
result
[Int32]
result' <- (Int32 -> Ptr Int32 -> IO [Int32]
forall a b. (Integral a, Storable b) => a -> Ptr b -> IO [b]
unpackStorableArrayWithLength Int32
length_') Ptr Int32
result
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
message
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
length_
[Int32] -> IO [Int32]
forall (m :: * -> *) a. Monad m => a -> m a
return [Int32]
result'
#if ENABLE_OVERLOADING
data UnixFDMessageStealFdsMethodInfo
instance (signature ~ (m [Int32]), MonadIO m, IsUnixFDMessage a) => O.MethodInfo UnixFDMessageStealFdsMethodInfo a signature where
overloadedMethod _ = unixFDMessageStealFds
#endif