GioMemoryOutputStream

描述 [源]

class Gio.MemoryOutputStream : Gio.OutputStream
  implements Gio.PollableOutputStream, Gio.Seekable {
  /* No available fields */
}

GMemoryOutputStream 是一个类,用于将任意内存块用作 GIO 流式输出操作的输出。

截至 GLib 2.34,GMemoryOutputStream 简单地实现了 GPollableOutputStream:它始终处于就绪状态。

构造函数

g_memory_output_stream_new

创建一个新的 GMemoryOutputStream

g_memory_output_stream_new_resizable

创建一个新的 GMemoryOutputStream,使用 g_realloc()g_free() 进行内存分配。

自从:2.36

实例方法

g_memory_output_stream_get_data

ostream 获取任何已负载的数据。

g_memory_output_stream_get_data_size

返回从开始到最后一个未截断的写入字节的字节数量。

自从:2.18

g_memory_output_stream_get_size

获取当前分配的数据区域的大小(从 g_memory_output_stream_get_data() 可用)。

g_memory_output_stream_steal_as_bytes

ostream 中的数据作为 GBytes 返回。ostream 必须在调用此函数之前关闭。

自从:2.34

g_memory_output_stream_steal_data

ostream 获取任何已负载的数据。数据的所有权转移给调用者;不再需要时,必须使用在 ostreamGMemoryOutputStream:destroy-function 属性中设置的释放函数进行释放。

自从:2.26

GOutputStream 继承的方法(31)

请参阅 GOutputStream 以获取方法的完整列表。

GPollableOutputStream 继承的方法(5)

请参阅 GPollableOutputStream 以获取方法的完整列表。

GObject 继承的方法(43)
请参阅 GObject 以获取方法的完整列表。

GPollableOutputStream 继承的方法(5)

g_pollable_output_stream_can_poll

检查 stream 是否实际可轮询。某些类可能会实现 GPollableOutputStream 但仅有的某些类的实例可轮询。如果此方法返回 FALSE,则其他 GPollableOutputStream 方法的行为是未定义的。

自从:2.28

g_pollable_output_stream_can_poll

g_pollable_output_stream_create_source

创建一个在 stream 可写入时、或 cancellable 被触发或发生错误时触发的 GSource。源上的回调用 GPollableSourceFunc 类型。

g_pollable_output_stream_can_poll

g_pollable_output_stream_write_nonblocking

尝试从 buffer 中写入最多 count 个字节到 stream,类似于 g_output_stream_write()。如果 stream 当前不可写,将立即返回 G_IO_ERROR_WOULD_BLOCK,此时可以使用 g_pollable_output_stream_create_source() 创建一个将在 stream 可写时被触发的 GSource

g_pollable_output_stream_writev_nonblocking

尝试将存储在 n_vectorsvectors 中的字节写入 stream,类似于 g_output_stream_writev()。如果 stream 当前不可写,将立即返回 %G_POLLABLE_RETURN_WOULD_BLOCK,此时可以使用 g_pollable_output_stream_create_source() 创建一个将在 stream 可写时被触发的 GSource。在这种情况下,error 将不会被设置。

since: 2.60

GSeekable 继承的方法 (5)
g_seekable_can_seek

测试流是否支持 GSeekableIface

g_seekable_can_truncate

测试流长度是否可以使用 g_seekable_truncate() 进行调整。

g_seekable_seek

根据给定的 offsettype 在流中进行定位。

g_seekable_tell

告知流中的当前位置。

g_seekable_truncate

将流长度设置到 offset。如果流之前比 offset 更长,将丢弃额外的数据。如果流之前比 offset 更短,它将被扩展为 NUL (‘\0’) 字节。

属性

Gio.MemoryOutputStream:data

指向将要写入数据的缓冲区的指针。

since: 2.24

Gio.MemoryOutputStream:data-size

写入缓冲区中的数据大小。

since: 2.24

Gio.MemoryOutputStream:destroy-function

当流被销毁时,以缓冲区作为参数调用的函数。

since: 2.24

Gio.MemoryOutputStream:realloc-function

带有 realloc 语法的函数,用于扩大缓冲区。

since: 2.24

Gio.MemoryOutputStream:size

数据缓冲区的当前大小。

since: 2.24

信号

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

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

类结构

struct GioMemoryOutputStreamClass {
  GOutputStreamClass parent_class;
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  
}

无描述。

类成员
parent_class: GOutputStreamClass

无描述。

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

无描述。