| 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 bytesReceived 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-Nothing then it is set to the source address the message
was received from, and the caller must free it afterwards.
If controlMessages is non-Nothing then it is set to an array of control
messages received with the message (if any), and the caller must free it
afterwards. numControlMessages 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 #