虚拟方法
声明
void
write_async (
GOutputStream* stream,
void* buffer,
gsize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述
请求从 buffer
中异步写入 count
字节到流中。当操作完成时,将调用 callback
。然后可以调用 g_output_stream_write_finish()
来获取操作的结果。
在异步请求期间,不允许进行其他同步和异步调用,这将导致 G_IO_ERROR_PENDING
错误。
如果 count
的值大于 G_MAXSSIZE
,则将引发 G_IO_ERROR_INVALID_ARGUMENT
错误。
成功时,将写入的字节数传递给 callback
。如果这不是请求的大小,不会是错误,因为这可能是部分 I/O 错误的情况,但我们通常尝试写入请求的字节数。
此方法永远不会因 G_IO_ERROR_WOULD_BLOCK
失败 - 如果 stream
无法接受更多数据,该方法将等待直到这一变化。
优先级更高的任何未处理的 I/O 请求(数值更低)将先于优先级较低的未处理请求执行。默认优先级为 G_PRIORITY_DEFAULT
。
异步方法具有使用线程实现异步性的默认回退,因此对于继承类来说是可选的。但是,如果您覆盖其中一个,则必须覆盖所有。
有关此函数的同步阻塞版本,请参阅 g_output_stream_write()。
请注意,不会复制 buffer
,因此它必须保持有效,直到 callback
被调用。有关自动保留内容引用(不进行复制)的 GBytes
版本,请参阅 g_output_stream_write_bytes_async()
。
参数
buffer
-
类型:一个
guint8
数组包含要写入数据的缓冲区。
此参数可以是 NULL
。数组的长度由 count
参数指定。数据由方法调用者拥有。 count
-
类型:
gsize
要写入的字节数。
io_priority
-
类型:
int
请求的 I/O 优先级。
cancellable
-
类型:
GCancellable
可选的
GCancellable
对象,NULL
表示忽略。此参数可以是 NULL
。数据由方法调用者拥有。 callback
-
当请求满足时调用
GAsyncReadyCallback
。 user_data
-
类型:
gpointer
传递给回调函数的数据。
此参数可以是 NULL
。数据由方法调用者拥有。