condition_check
Description:
Checks on the readiness of this to perform operations.
The operations specified in condition
are checked for and masked against the currently-satisfied conditions on
this. The result is returned.
g_io_in will be set in the return value if data is available to read with
receive_messages, or if the connection is closed remotely (EOS);
and if the datagram_based has not been closed locally using some implementation-specific method (such as
close or shutdown
with shutdown_read
set, if it’s a Socket).
If the connection is shut down or closed (by calling close or
shutdown with shutdown_read
set, if it’s a
Socket, for example), all calls to this function will return
g_io_error_closed.
g_io_out will be set if it is expected that at least one byte can be sent using send_messages without blocking. It will not be set if the datagram_based has been closed locally.
g_io_hup will be set if the connection has been closed locally.
g_io_err will be set if there was an asynchronous error in transmitting data previously enqueued using send_messages.
Note that on Windows, it is possible for an operation to return g_io_error_would_block even immediately after condition_check has claimed that the DatagramBased is ready for writing. Rather than calling condition_check and then writing to the DatagramBased if it succeeds, it is generally better to simply try writing right away, and try again later if the initial attempt returns g_io_error_would_block.
It is meaningless to specify g_io_err or g_io_hup in condition
; these conditions will always be set in the output if they are true. Apart from these flags, the output is guaranteed to be masked by
condition
.
This call never blocks.
Parameters:
this | |
condition |
a IOCondition mask to check |
Returns:
the IOCondition mask of the current state |