类
GioBufferedInputStream
描述 [src]
class Gio.BufferedInputStream : Gio.FilterInputStream
implements Gio.Seekable {
/* No available fields */
}
缓冲输入流实现 GFilterInputStream
,并提供了缓冲读取功能。
默认情况下,GBufferedInputStream
的缓冲区大小设置为4千字节。
要创建一个缓冲输入流,请使用g_buffered_input_stream_new()
,或使用g_buffered_input_stream_new_sized()
在构造时指定缓冲区的大小。
要获取缓冲输入流中缓冲区的大小,请使用g_buffered_input_stream_get_buffer_size()
。要更改缓冲输入流缓冲区的大小,请使用g_buffered_input_stream_set_buffer_size()
。请注意,缓冲区的大小不能降低到缓冲区内数据的大小以下。
实例方法
g_buffered_input_stream_fill_async
异步地将数据读取到stream
的缓冲区中,最多count
大小。可以使用io_priority
来优先读取。有关此函数的同步版本,请参阅g_buffered_input_stream_fill()
。
从GFilterInputStream继承的方法(3)
g_filter_input_stream_get_base_stream
获取filter stream
的基础流。
g_filter_input_stream_get_close_base_stream
返回在关闭stream
时,是否关闭基础流。
g_filter_input_stream_set_close_base_stream
设置在关闭stream
时,是否关闭基础流。
从GInputStream继承的方法(19)
g_input_stream_clear_pending
清除stream
上的挂起标志。
g_input_stream_close
关闭流,释放与其相关的资源。
g_input_stream_close_async
请求异步关闭流,释放与其相关的资源。操作完成后,将调用callback
。然后您可以调用g_input_stream_close_finish()
以获取操作的结果。
g_input_stream_close_finish
异步关闭流的完成,从g_input_stream_close_async()启动。
g_input_stream_has_pending
检查输入流是否有待处理的操作。
g_input_stream_is_closed
检查输入流是否已关闭。
g_input_stream_read
尝试从流中读取到以buffer
开始的位置的count
个字节。在此读取过程中可能会阻塞。
g_input_stream_read_all
尝试从流中读取到以buffer
开始的位置的count
个字节。在此读取过程中可能会阻塞。
g_input_stream_read_all_async
请求从流中异步读取count
个字节到从buffer
开始的位置。
since: 2.44
g_input_stream_read_all_finish
完成异步流读取操作,从g_input_stream_read_all_async()启动。
since: 2.44
g_input_stream_read_async
请求从流中以buffer
开始的位置异步读取count
个字节。操作完成后,将调用callback
。然后您可以调用g_input_stream_read_finish()
以获取操作的结果。
g_input_stream_read_bytes
与g_input_stream_read()类似,它尝试以阻止方式从流中读取count
个字节。然而,它不会读取到用户提供的缓冲区中,而是将创建一个包含读取数据的新的GBytes
对象。这可能更易于语言绑定使用。
since: 2.34
g_input_stream_read_bytes_async
请求从流中异步读取count
个字节到一个新的GBytes
中。操作完成后,将调用callback
。然后您可以调用g_input_stream_read_bytes_finish()
以获取操作的结果。
since: 2.34
g_input_stream_read_bytes_finish
完成异步流读取到GBytes
的操作。
since: 2.34
g_input_stream_read_finish
完成异步流读取操作。
g_input_stream_set_pending
设置stream
有挂起的操作。如果挂起标志已经设置或stream
已关闭,则返回FALSE
并设置error
。
g_input_stream_skip
尝试从流中跳过count
个字节。在操作过程中可能会阻塞。
g_input_stream_skip_async
请求从流中异步跳过count
个字节。操作完成后,将调用callback
。然后您可以调用g_input_stream_skip_finish()
以获取操作的结果。
g_input_stream_skip_finish
完成流跳过操作。
从GSeekable继承的方法(5)
g_seekable_can_seek
测试流是否支持GSeekableIface
。
g_seekable_can_truncate
测试流的长度是否可以用g_seekable_truncate
进行调整。
g_seekable_seek
通过给定 offset
和 type
在流中进行搜索。
g_seekable_tell
返回流中的当前位置。
g_seekable_truncate
将流的长度设置为 offset
。如果流之前比 offset
更大,则多余的数据将被丢弃。如果流之前比 offset
更小,它将通过 NUL(‘\0’)字节进行扩展。
属性
从 GFilterInputStream 继承的属性(2)
Gio.FilterInputStream:base-stream
执行 I/O 操作的基本流。
Gio.FilterInputStream:close-base-stream
当过滤器流关闭时,基本流是否应该被关闭。
信号
从 GObject 继承的信号(1)
GObject::notify
当对象的一个属性通过 g_object_set_property(),g_object_set() 等其值被设置时,发出 notify 信号。
类结构
struct GioBufferedInputStreamClass {
GFilterInputStreamClass parent_class;
gssize (* fill) (
GBufferedInputStream* stream,
gssize count,
GCancellable* cancellable,
GError** error
);
void (* fill_async) (
GBufferedInputStream* stream,
gssize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
gssize (* fill_finish) (
GBufferedInputStream* 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: GFilterInputStreamClass
无描述。
fill: gssize (* fill) ( GBufferedInputStream* stream, gssize count, GCancellable* cancellable, GError** error )
无描述。
fill_async: void (* fill_async) ( GBufferedInputStream* stream, gssize count, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
无描述。
fill_finish: gssize (* fill_finish) ( GBufferedInputStream* 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 (* _g_reserved5) ( void )
无描述。
虚方法
Gio.BufferedInputStreamClass.fill_async
异步地将数据读取到stream
的缓冲区中,最多count
大小。可以使用io_priority
来优先读取。有关此函数的同步版本,请参阅g_buffered_input_stream_fill()
。