| Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
| Safe Haskell | None |
| Language | Haskell2010 |
GI.Gio.Structs.InputMessage
Description
Structure used for scatter/gather data input when receiving multiple messages or packets in one go. You generally pass in an array of empty #GInputVectors and the operation will use all the buffers as if they were one buffer, and will set @bytes_received to the total number of bytes received across all #GInputVectors.
This structure closely mirrors `struct mmsghdr` and `struct msghdr` from the POSIX sockets API (see `man 2 recvmmsg`).
If @address is non-%NULL then it is set to the source address the message was received from, and the caller must free it afterwards.
If control_messages is non-%NULL then it is set to an array of control
messages received with the message (if any), and the caller must free it
afterwards. num_control_messages is set to the number of elements in
this array, which may be zero.
Flags relevant to this message will be returned in @flags. For example,
MSG_EOR or MSG_TRUNC.
- newtype InputMessage = InputMessage (ManagedPtr InputMessage)
- newZeroInputMessage :: MonadIO m => m InputMessage
- noInputMessage :: Maybe InputMessage
- clearInputMessageAddress :: MonadIO m => InputMessage -> m ()
- getInputMessageAddress :: MonadIO m => InputMessage -> m (Maybe SocketAddress)
- inputMessage_address :: AttrLabelProxy "address"
- setInputMessageAddress :: MonadIO m => InputMessage -> Ptr SocketAddress -> m ()
- getInputMessageBytesReceived :: MonadIO m => InputMessage -> m Word64
- inputMessage_bytesReceived :: AttrLabelProxy "bytesReceived"
- setInputMessageBytesReceived :: MonadIO m => InputMessage -> Word64 -> m ()
- getInputMessageFlags :: MonadIO m => InputMessage -> m Int32
- inputMessage_flags :: AttrLabelProxy "flags"
- setInputMessageFlags :: MonadIO m => InputMessage -> Int32 -> m ()
- getInputMessageNumControlMessages :: MonadIO m => InputMessage -> m Word32
- inputMessage_numControlMessages :: AttrLabelProxy "numControlMessages"
- setInputMessageNumControlMessages :: MonadIO m => InputMessage -> Word32 -> m ()
- getInputMessageNumVectors :: MonadIO m => InputMessage -> m Word32
- inputMessage_numVectors :: AttrLabelProxy "numVectors"
- setInputMessageNumVectors :: MonadIO m => InputMessage -> Word32 -> m ()
Exported types
newtype InputMessage Source #
Constructors
| InputMessage (ManagedPtr InputMessage) |
Instances
| WrappedPtr InputMessage Source # | |
| (~) AttrOpTag tag AttrSet => Constructible InputMessage tag Source # | |
| ((~) * info (ResolveInputMessageMethod t InputMessage), MethodInfo * info InputMessage p) => IsLabel t (InputMessage -> p) Source # | |
| ((~) * info (ResolveInputMessageMethod t InputMessage), MethodInfo * info InputMessage p) => IsLabelProxy t (InputMessage -> p) Source # | |
| HasAttributeList * InputMessage Source # | |
| type AttributeList InputMessage Source # | |
newZeroInputMessage :: MonadIO m => m InputMessage Source #
Construct a InputMessage struct initialized to zero.
Properties
address
clearInputMessageAddress :: MonadIO m => InputMessage -> m () Source #
getInputMessageAddress :: MonadIO m => InputMessage -> m (Maybe SocketAddress) Source #
inputMessage_address :: AttrLabelProxy "address" Source #
setInputMessageAddress :: MonadIO m => InputMessage -> Ptr SocketAddress -> m () Source #
bytesReceived
getInputMessageBytesReceived :: MonadIO m => InputMessage -> m Word64 Source #
inputMessage_bytesReceived :: AttrLabelProxy "bytesReceived" Source #
setInputMessageBytesReceived :: MonadIO m => InputMessage -> Word64 -> m () Source #
flags
getInputMessageFlags :: MonadIO m => InputMessage -> m Int32 Source #
inputMessage_flags :: AttrLabelProxy "flags" Source #
setInputMessageFlags :: MonadIO m => InputMessage -> Int32 -> m () Source #
numControlMessages
getInputMessageNumControlMessages :: MonadIO m => InputMessage -> m Word32 Source #
inputMessage_numControlMessages :: AttrLabelProxy "numControlMessages" Source #
setInputMessageNumControlMessages :: MonadIO m => InputMessage -> Word32 -> m () Source #
numVectors
getInputMessageNumVectors :: MonadIO m => InputMessage -> m Word32 Source #
inputMessage_numVectors :: AttrLabelProxy "numVectors" Source #
setInputMessageNumVectors :: MonadIO m => InputMessage -> Word32 -> m () Source #