Method
GioSocketcreate_source
since: 2.22
Declaration [src]
GSource*
g_socket_create_source (
GSocket* socket,
GIOCondition condition,
GCancellable* cancellable
)
Description [src]
Creates a GSource
that can be attached to a %GMainContext to monitor
for the availability of the specified condition
on the socket. The GSource
keeps a reference to the socket
.
The callback on the source is of the GSocketSourceFunc
type.
It is meaningless to specify G_IO_ERR
or G_IO_HUP
in condition
;
these conditions will always be reported output if they are true.
cancellable
if not NULL
can be used to cancel the source, which will
cause the source to trigger, reporting the current condition (which
is likely 0 unless cancellation happened at the same time as a
condition change). You can check for this in the callback using g_cancellable_is_cancelled().
If socket
has a timeout set, and it is reached before condition
occurs, the source will then trigger anyway, reporting G_IO_IN
or
G_IO_OUT
depending on condition
. However, socket
will have been
marked as having had a timeout, and so the next GSocket
I/O method
you call will then fail with a G_IO_ERROR_TIMED_OUT
.
Available since: 2.22
This method is not directly available to language bindings.
Parameters
condition
-
Type:
GIOCondition
A
GIOCondition
mask to monitor. cancellable
-
Type:
GCancellable
A %GCancellable or
NULL
.The argument can be NULL
.The data is owned by the caller of the method.
Return value
Type: GSource
A newly allocated %GSource, free with g_source_unref().
The caller of the method takes ownership of the returned data, and is responsible for freeing it. |