GioMemoryInputStream

描述 [源]

class Gio.MemoryInputStream : Gio.InputStream
  implements Gio.PollableInputStream, Gio.Seekable {
  /* No available fields */
}

GMemoryInputStream 是一个用于将任意内存块用作 GIO 流输入操作的类。

截至 GLib 2.34,GMemoryInputStream 实现了 GPollableInputStream

构造函数

g_memory_input_stream_new

创建一个新的空 GMemoryInputStream

g_memory_input_stream_new_from_bytes

从给定的 bytes 创建一个新的 GMemoryInputStream

自 2.34起新增

g_memory_input_stream_new_from_data

创建一个新的 GMemoryInputStream,其内存大小为给定的大小。

实例方法

g_memory_input_stream_add_bytes

bytes 追加到可从输入流中读取的数据。

自 2.34起新增

g_memory_input_stream_add_data

data 追加到可从输入流中读取的数据。

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

尝试从流中读取 count 字节到从 buffer 开始的缓冲区。在此读取期间将阻塞。

g_input_stream_read_all

尝试从流中读取 count 字节到从 buffer 开始的缓冲区。在此读取期间将阻塞。

g_input_stream_read_all_async

请求异步读取从流中到从 buffer 开始的缓冲区的 count 字节。

自 2.44起新增

g_input_stream_read_all_finish

完成 g_input_stream_read_all_async() 启动的异步流读取操作。

自 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,包含读取的数据。这可能更容易从语言绑定中使用。

自 2.34起新增

g_input_stream_read_bytes_async

请求异步从流中读取 count 字节到一个新的 GBytes。操作完成后,将调用 callback。然后可以调用 g_input_stream_read_bytes_finish() 来获取操作的结果。

自 2.34起新增

g_input_stream_read_bytes_finish

完成一个异步流读取到 GBytes 的操作。

自 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

完成流跳过操作。

GObject继承的方法(43个)

请参阅GObject以获取方法的全列表。

GPollableInputStream继承的方法(4个)
g_pollable_input_stream_can_poll

检查stream是否可轮询。有些类可能实现了GPollableInputStream,但只有该类的一些实例是可轮询的。如果此方法返回FALSE,则其他GPollableInputStream方法的操作是未定义的。

since: 2.28

g_pollable_input_stream_create_source

创建一个当stream可读或cancellable被触发或发生错误时触发的GSource。源上的回调为GPollableSourceFunc类型。

since: 2.28

g_pollable_input_stream_is_readable

检查stream是否可读。

since: 2.28

g_pollable_input_stream_read_nonblocking

尝试从stream中读取到buffer中的最多count个字节,就像在g_input_stream_read()中一样。如果stream目前不可读,这将立即返回G_IO_ERROR_WOULD_BLOCK,您可以使用g_pollable_input_stream_create_source()创建一个将在stream可读时触发的GSource

GSeekable继承的方法(5个)
g_seekable_can_seek

测试流是否支持GBrowsableFace

g_seekable_can_truncate

测试流的长度是否可以通过g_seekable_truncate()调整。

g_seekable_seek

通过给定的offset,通过type修改,在流中查找。

g_seekable_tell

告诉流中的当前位置。

g_seekable_truncate

将流的长度设置为offset。如果流之前大于offset,则丢弃额外的数据。如果流之前小于offset,则使用NUL(‘\0’)字节扩展。

信号

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

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

类结构

struct GioMemoryInputStreamClass {
  GInputStreamClass parent_class;
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  
}

无描述。

类成员
parent_class: GInputStreamClass

无描述。

_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 )

无描述。