GioOutputStream

描述 [src]

abstract class Gio.OutputStream : GObject.Object
{
  /* No available fields */
}

GOutputStream是实现流输出的基类。

它有写入流(g_output_stream_write()),关闭流(g_output_stream_close())和刷新挂起的写入(g_output_stream_flush())的功能。

要复制输入流的内容到输出流,而不手动处理读取和写入,请使用g_output_stream_splice()

有关流API线程安全的详细信息,请参阅GIOStream的文档。

所有这些函数都有异步版本。

所有从GOutputStream派生的类应该实现同步写入、拼接、刷新和关闭流的操作,但可能实现异步版本。

祖先

实例方法

g_output_stream_clear_pending

清除 stream 上的挂起标记。

g_output_stream_close

关闭流,释放与其相关的资源。

g_output_stream_close_async

请求异步关闭流,释放与其相关的资源。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_close_finish() 来获取操作结果。

g_output_stream_close_finish

关闭输出流。

g_output_stream_flush

强制写出给定 stream 的所有用户空间缓冲数据。在操作期间将阻塞。关闭流将隐式引发刷新。

g_output_stream_flush_async

强制异步写出给定 stream 的所有用户空间缓冲数据。有关行为详情,请参阅 g_output_stream_flush()。

g_output_stream_flush_finish

完成输出流的刷新操作。

g_output_stream_has_pending

检查输出流是否有挂起的操作。

g_output_stream_is_closed

检查输出流是否已经被关闭。

g_output_stream_is_closing

检查输出流是否正在关闭。这可以在例如 flush 实现中使用,以查看刷新(或其他 I/O 操作)是否在关闭操作内部调用。

since: 2.24

g_output_stream_printf

这是围绕 g_output_stream_write_all() 的一个实用函数。它使用 g_strdup_vprintf()format 和 @… 转换为字符串,然后将该字符串写入到 stream 中。

since: 2.40

g_output_stream_set_pending

stream 设置为具有挂起的操作。如果挂起标记已设置或 stream 已关闭,它将返回 FALSE 并设置 error

g_output_stream_splice

将输入流拼接到输出流中。

g_output_stream_splice_async

异步拼接流。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_splice_finish() 来获取操作结果。

g_output_stream_splice_finish

完成异步流拼接操作。

g_output_stream_vprintf

这是围绕 g_output_stream_write_all() 的一个实用函数。它使用 g_strdup_vprintf()formatargs 转换为字符串,然后将该字符串写入到 stream 中。

since: 2.40

g_output_stream_write

尝试将 buffer 中的 count 字节写入流中。在操作期间将阻塞。

g_output_stream_write_all

尝试将 buffer 中的 count 字节写入流中。在操作期间将阻塞。

g_output_stream_write_all_async

请求异步将从 buffer 中的 count 字节写入流中。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_write_all_finish() 来获取操作结果。

since: 2.44

g_output_stream_write_all_finish

完成由 g_output_stream_write_all_async() 启动的异步流写入操作。

since: 2.44

g_output_stream_write_async

请求将 buffer 中的 count 字节异步写入流中。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_write_finish() 来获取操作结果。

g_output_stream_write_bytes

g_output_stream_write() 的包装函数,它使用一个 GBytes 作为输入。对于语言绑定或在其他情况下,比如当使用 GBytes 的引用计数性质比裸指针接口更有帮助时,这可能更方便。

g_output_stream_write_bytes_async

这个函数与 g_output_stream_write_async() 相似,但它以 GBytes 作为输入。由于 GBytes 具有引用计数的特性,这允许流避免对数据进行复制。

g_output_stream_write_bytes_finish

完成从 GBytes 开始的流写入操作。

g_output_stream_write_finish

完成流写入操作。

g_output_stream_writev

尝试将 n_vectorsvector 中的字节数据写入流。在操作过程中将阻塞。

自 2.60 版起

g_output_stream_writev_all

尝试将 n_vectorsvector 中的字节数据写入流。在操作过程中将阻塞。

自 2.60 版起

g_output_stream_writev_all_async

请求异步将 n_vectorsvector 中的字节数据写入流。当操作完成时,将调用 callback。然后您可以调用 g_output_stream_writev_all_finish() 来获取操作的结果。

自 2.60 版起

g_output_stream_writev_all_finish

完成由 g_output_stream_writev_all_async() 开始的异步流写入操作。

自 2.60 版起

g_output_stream_writev_async

请求异步将 n_vectorsvector 中的字节数据写入流。当操作完成时,将调用 callback。然后您可以调用 g_output_stream_writev_finish() 来获取操作的结果。

自 2.60 版起

g_output_stream_writev_finish

完成流写入v操作。

自 2.60 版起

GObject 继承的方法(43个)

有关方法的完整列表,请参阅 GObject 。

信号

GObject 继承的信号(1个)
GObject::notify

在对象的一个属性值通过 g_object_set_property(), g_object_set() 等方式设置时,将发出 notify 信号。

类结构

struct GioOutputStreamClass {
  GObjectClass parent_class;
  gssize (* write_fn) (
    GOutputStream* stream,
    void* buffer,
    gsize count,
    GCancellable* cancellable,
    GError** error
  );
  gssize (* splice) (
    GOutputStream* stream,
    GInputStream* source,
    GOutputStreamSpliceFlags flags,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* flush) (
    GOutputStream* stream,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* close_fn) (
    GOutputStream* stream,
    GCancellable* cancellable,
    GError** error
  );
  void (* write_async) (
    GOutputStream* stream,
    void* buffer,
    gsize count,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gssize (* write_finish) (
    GOutputStream* stream,
    GAsyncResult* result,
    GError** error
  );
  void (* splice_async) (
    GOutputStream* stream,
    GInputStream* source,
    GOutputStreamSpliceFlags flags,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gssize (* splice_finish) (
    GOutputStream* stream,
    GAsyncResult* result,
    GError** error
  );
  void (* flush_async) (
    GOutputStream* stream,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* flush_finish) (
    GOutputStream* stream,
    GAsyncResult* result,
    GError** error
  );
  void (* close_async) (
    GOutputStream* stream,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* close_finish) (
    GOutputStream* stream,
    GAsyncResult* result,
    GError** error
  );
  gboolean (* writev_fn) (
    GOutputStream* stream,
    const GOutputVector* vectors,
    gsize n_vectors,
    gsize* bytes_written,
    GCancellable* cancellable,
    GError** error
  );
  void (* writev_async) (
    GOutputStream* stream,
    const GOutputVector* vectors,
    gsize n_vectors,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* writev_finish) (
    GOutputStream* stream,
    GAsyncResult* result,
    gsize* bytes_written,
    GError** error
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  void (* _g_reserved6) (
void
  );
  void (* _g_reserved7) (
void
  );
  void (* _g_reserved8) (
void
  );
  
}

暂无描述。

类成员
parent_class: GObjectClass

暂无描述。

write_fn: gssize (* write_fn) ( GOutputStream* stream, void* buffer, gsize count, GCancellable* cancellable, GError** error )

暂无描述。

splice: gssize (* splice) ( GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, GCancellable* cancellable, GError** error )

暂无描述。

flush: gboolean (* flush) ( GOutputStream* stream, GCancellable* cancellable, GError** error )

暂无描述。

close_fn: gboolean (* close_fn) ( GOutputStream* stream, GCancellable* cancellable, GError** error )

暂无描述。

write_async: void (* write_async) ( GOutputStream* stream, void* buffer, gsize count, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

暂无描述。

write_finish: gssize (* write_finish) ( GOutputStream* stream, GAsyncResult* result, GError** error )

暂无描述。

splice_async: void (* splice_async) ( GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

暂无描述。

splice_finish: gssize (* splice_finish) ( GOutputStream* stream, GAsyncResult* result, GError** error )

暂无描述。

flush_async: void (* flush_async) ( GOutputStream* stream, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

暂无描述。

flush_finish: gboolean (* flush_finish) ( GOutputStream* stream, GAsyncResult* result, GError** error )

暂无描述。

close_async: void (* close_async) ( GOutputStream* stream, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

暂无描述。

close_finish: gboolean (* close_finish) ( GOutputStream* stream, GAsyncResult* result, GError** error )

暂无描述。

writev_fn: gboolean (* writev_fn) ( GOutputStream* stream, const GOutputVector* vectors, gsize n_vectors, gsize* bytes_written, GCancellable* cancellable, GError** error )

暂无描述。

writev_async: void (* writev_async) ( GOutputStream* stream, const GOutputVector* vectors, gsize n_vectors, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

暂无描述。

writev_finish: gboolean (* writev_finish) ( GOutputStream* stream, GAsyncResult* result, gsize* bytes_written, GError** error )

暂无描述。

_g_reserved4: void (* _g_reserved4) ( void )

暂无描述。

_g_reserved5: void (* _g_reserved5) ( void )

暂无描述。

_g_reserved6: void (* _g_reserved6) ( void )

暂无描述。

_g_reserved7: void (* _g_reserved7) ( void )

暂无描述。

_g_reserved8: void (* _g_reserved8) ( void )

暂无描述。

虚拟方法

Gio.OutputStreamClass.close_async

请求异步关闭流,释放与其相关的资源。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_close_finish() 来获取操作结果。

gio.OutputStreamClass.flush

强制写出给定 stream 的所有用户空间缓冲数据。在操作期间将阻塞。关闭流将隐式引发刷新。

gio.OutputStreamClass.flush_async

强制异步写出给定 stream 的所有用户空间缓冲数据。有关行为详情,请参阅 g_output_stream_flush()。

gio.InputStreamClass.flush_finish

完成输出流的刷新操作。

gio.OutputStreamClass.splice

将输入流拼接到输出流中。

gio.OutputStreamClass.splice_async

异步拼接流。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_splice_finish() 来获取操作结果。

gio.OutputStreamClass.splice_finish

完成异步流拼接操作。

gio.OutputStreamClass.write_async

请求将 buffer 中的 count 字节异步写入流中。当操作完成后,将调用 callback。然后您可以调用 g_output_stream_write_finish() 来获取操作结果。

gio.OutputStreamClass.write_finish

完成流写入操作。

gio.OutputStreamClass.write_fn

尝试将 buffer 中的 count 字节写入流中。在操作期间将阻塞。

gio.OutputStreamClass.writev_async

请求异步将 n_vectorsvector 中的字节数据写入流。当操作完成时,将调用 callback。然后您可以调用 g_output_stream_writev_finish() 来获取操作的结果。

自 2.60 版起

gio.OutputStreamClass.writev_finish

完成流写入v操作。

自 2.60 版起

gio.OutputStreamClass.writev_fn

尝试将 n_vectorsvector 中的字节数据写入流。在操作过程中将阻塞。

自 2.60 版起