![]() | ![]() | ![]() | GnomeVFS - Filesystem Abstraction library | ![]() |
---|
Unified network I/O — Posix style network input/output functions.
GnomeVFSResult (*GnomeVFSSocketReadFunc) (gpointer connection, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation); GnomeVFSResult (*GnomeVFSSocketWriteFunc) (gpointer connection, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation); void (*GnomeVFSSocketCloseFunc) (gpointer connection, GnomeVFSCancellation *cancellation); struct GnomeVFSSocketImpl; GnomeVFSSocket* gnome_vfs_socket_new (GnomeVFSSocketImpl *impl, void *connection); GnomeVFSResult gnome_vfs_socket_write (GnomeVFSSocket *socket, gconstpointer buffer, int bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_close (GnomeVFSSocket *socket, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_read (GnomeVFSSocket *socket, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation); void gnome_vfs_socket_free (GnomeVFSSocket *socket); GnomeVFSResult gnome_vfs_socket_set_timeout (GnomeVFSSocket *socket, GTimeVal *timeout, GnomeVFSCancellation *cancellation);
The GnomeVFSSocket function family unifies network I/O through functions similar to the standard POSIX read/write functions. The main difference is that all operations are cancellable through the standard GnomeVFS cancellation mechanism and you can specify a maximum amount of time an operation may take through gnome_vfs_socket_set_timeout.
GnomeVFSResult (*GnomeVFSSocketReadFunc) (gpointer connection, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation);
connection : | |
buffer : | |
bytes : | |
bytes_read : | |
cancellation : | |
Returns : |
GnomeVFSResult (*GnomeVFSSocketWriteFunc) (gpointer connection, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation);
connection : | |
buffer : | |
bytes : | |
bytes_written : | |
cancellation : | |
Returns : |
void (*GnomeVFSSocketCloseFunc) (gpointer connection, GnomeVFSCancellation *cancellation);
connection : | |
cancellation : |
struct GnomeVFSSocketImpl { GnomeVFSSocketReadFunc read; GnomeVFSSocketWriteFunc write; GnomeVFSSocketCloseFunc close; GnomeVFSSocketSetTimeoutFunc set_timeout; };
GnomeVFSSocket* gnome_vfs_socket_new (GnomeVFSSocketImpl *impl, void *connection);
Creates a new GnomeVFS Socket using the specific implementation
impl
.
impl : | an implementation of a socket, e.g. GnomeVFSSSL |
connection : | pointer to a connection object used by impl to track
state (the exact nature of connection varies from implementation to
implementation)
|
Returns : | a newly created socket |
GnomeVFSResult gnome_vfs_socket_write (GnomeVFSSocket *socket, gconstpointer buffer, int bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation);
Write bytes
bytes of data from buffer
to socket
.
socket : | socket to write data to |
buffer : | data to write to the socket |
bytes : | number of bytes from buffer to write to socket
|
bytes_written : | pointer to a GnomeVFSFileSize, will contain the number of bytes actually written to the socket on return. |
cancellation : | optional cancellation object |
Returns : | GnomeVFSResult indicating the success of the operation |
GnomeVFSResult gnome_vfs_socket_close (GnomeVFSSocket *socket, GnomeVFSCancellation *cancellation);
Close socket
, freeing any resources it may be using.
socket : | the socket to be closed |
cancellation : | optional cancellation object |
Returns : | GnomeVFSResult indicating the success of the operation |
GnomeVFSResult gnome_vfs_socket_read (GnomeVFSSocket *socket, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation);
Read bytes
bytes of data from the socket
into buffer
.
socket : | socket to read data from |
buffer : | allocated buffer of at least bytes bytes to be read into
|
bytes : | number of bytes to read from socket into buffer
|
bytes_read : | pointer to a GnomeVFSFileSize, will contain the number of bytes actually read from the socket on return. |
cancellation : | optional cancellation object |
Returns : | GnomeVFSResult indicating the success of the operation |
void gnome_vfs_socket_free (GnomeVFSSocket *socket);
Frees the memory allocated for socket
, but does
not call any GnomeVFSSocketImpl function.
socket : | The GnomeVFSSocket you want to free. |
Since 2.8
GnomeVFSResult gnome_vfs_socket_set_timeout (GnomeVFSSocket *socket, GTimeVal *timeout, GnomeVFSCancellation *cancellation);
Set a timeout of timeout
. If timeout
is NULL following operations
will block indefinitely).
Note if you set timeout
to 0 (means tv_sec and tv_usec are both 0)
every following operation will return immediately. (This can be used
for polling.)
socket : | socket to set the timeout of |
timeout : | the timeout |
cancellation : | optional cancellation object |
Returns : | GnomeVFSResult indicating the success of the operation |
Since 2.8
<< SSL support functions | Unified bufferd network I/O >> |