类
GioInputStream
描述 [源]
abstract class Gio.InputStream : GObject.Object
{
/* No available fields */
}
GInputStream
是实现流输入的基类。
它提供了从流中读取数据(g_input_stream_read()
),关闭流(g_input_stream_close()
)以及跳过一些内容(g_input_stream_skip()
)的功能。
为了将输入流的内容复制到输出流,而无需手动处理读取和写入,请使用g_output_stream_splice()
。
有关流API的线程安全的详细信息,请参阅GIOStream
的相关文档。
所有这些函数都有异步版本。
实例方法
g_input_stream_close_async
请求异步关闭流,释放与之相关的资源。当操作完成后,将调用callback
。然后您可以调用g_input_stream_close_finish()
以获取操作的结果。
g_input_stream_read_async
请求从流到从 buffer
开始的缓冲区异步读取 count
字节。当操作完成后,将调用 callback
。您可以通过调用 g_input_stream_read_finish()
来获取操作结果。
g_input_stream_read_bytes
与 g_input_stream_read() 类似,它尝试以阻塞方式从流中读取 count
字节。然而,而不是读取到用户提供的缓冲区,这将创建一个包含读取数据的新的 GBytes
。这可能对语言绑定更容易使用。
自版本 2.34 开始
g_input_stream_read_bytes_async
请求异步从流到新的 GBytes
读取 count
字节。当操作完成后,将调用 callback
。然后您可以通过调用 g_input_stream_read_bytes_finish()
来获取操作结果。
自版本 2.34 开始
g_input_stream_skip_async
请求异步从流中跳过 count
字节。当操作完成后,将调用 callback
。然后您可以通过调用 g_input_stream_skip_finish()
来获取操作结果。
信号
从 GObject 继承的信号(1个)
GObject::notify
当通过 g_object_set_property(), g_object_set(), 等. 等设置对象的某个属性值时,会在对象上发出通知信号。
类结构
struct GioInputStreamClass {
GObjectClass parent_class;
gssize (* read_fn) (
GInputStream* stream,
void* buffer,
gsize count,
GCancellable* cancellable,
GError** error
);
gssize (* skip) (
GInputStream* stream,
gsize count,
GCancellable* cancellable,
GError** error
);
gboolean (* close_fn) (
GInputStream* stream,
GCancellable* cancellable,
GError** error
);
void (* read_async) (
GInputStream* stream,
void* buffer,
gsize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
gssize (* read_finish) (
GInputStream* stream,
GAsyncResult* result,
GError** error
);
void (* skip_async) (
GInputStream* stream,
gsize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
gssize (* skip_finish) (
GInputStream* stream,
GAsyncResult* result,
GError** error
);
void (* close_async) (
GInputStream* stream,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
gboolean (* close_finish) (
GInputStream* stream,
GAsyncResult* result,
GError** error
);
void (* _g_reserved1) (
void
);
void (* _g_reserved2) (
void
);
void (* _g_reserved3) (
void
);
void (* _g_reserved4) (
void
);
void (* _g_reserved5) (
void
);
}
没有可用的描述。
类成员
parent_class: GObjectClass
没有可用的描述。
read_fn: gssize (* read_fn) ( GInputStream* stream, void* buffer, gsize count, GCancellable* cancellable, GError** error )
没有可用的描述。
skip: gssize (* skip) ( GInputStream* stream, gsize count, GCancellable* cancellable, GError** error )
没有可用的描述。
close_fn: gboolean (* close_fn) ( GInputStream* stream, GCancellable* cancellable, GError** error )
没有可用的描述。
read_async: void (* read_async) ( GInputStream* stream, void* buffer, gsize count, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
没有可用的描述。
read_finish: gssize (* read_finish) ( GInputStream* stream, GAsyncResult* result, GError** error )
没有可用的描述。
skip_async: void (* skip_async) ( GInputStream* stream, gsize count, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
没有可用的描述。
skip_finish: gssize (* skip_finish) ( GInputStream* stream, GAsyncResult* result, GError** error )
没有可用的描述。
close_async: void (* close_async) ( GInputStream* stream, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
没有可用的描述。
close_finish: gboolean (* close_finish) ( GInputStream* stream, GAsyncResult* result, GError** error )
没有可用的描述。
_g_reserved1: void (* _g_reserved1) ( void )
没有可用的描述。
_g_reserved2: void (* _g_reserved2) ( void )
没有可用的描述。
_g_reserved3: void (* _g_reserved3) ( void )
没有可用的描述。
_g_reserved4: void (* _g_reserved4) ( void )
没有可用的描述。
_g Reserved5: void (* _gReserved5) ( void )
没有可用的描述。
虚拟方法
Gio.InputStreamClass.close_async
请求异步关闭流,释放与之相关的资源。当操作完成后,将调用callback
。然后您可以调用g_input_stream_close_finish()
以获取操作的结果。
Gio.InputStreamClass.read_async
请求从流到从 buffer
开始的缓冲区异步读取 count
字节。当操作完成后,将调用 callback
。您可以通过调用 g_input_stream_read_finish()
来获取操作结果。
Gio.InputStreamClass.skip_async
请求异步从流中跳过 count
字节。当操作完成后,将调用 callback
。然后您可以通过调用 g_input_stream_skip_finish()
来获取操作结果。