类
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()。