接口

转换器接口转换器

自:2.24

描述 [代码]

interface Gio.Converter : GObject.Object

GConverter 是一个用于流式转换的接口。

GConverter 由将二进制数据以各种方式转换的对象实现。转换可以是状态的,并且可能在任何地方失败。

一些示例转换包括:字符集转换、压缩、解压缩和正则表达式替换。

支持自:2.24

先决条件

为了实现转换器,您的类型必须从GObject继承。

实例方法

g_converter_convert

这是在转换数据时使用的主体操作。需要在循环中多次调用,并且每次都会做一些工作,即产生一些输出(在 outbuf 中)或消耗一些输入(从 inbuf 中),或者两者都有。如果无法执行任何工作,将返回错误。

自:2.24

g_converter_convert_bytes

converter 应用于 bytes 中的数据。

自:2.82

g_converter_reset

重置转换器中所有内部状态,使其表现得就像刚创建时一样。如果转换器有任何会生成输出的内部状态,则该输出将丢失。

自:2.24

接口结构

struct GioConverterIface {
  GTypeInterface g_iface;
  GConverterResult (* convert) (
    GConverter* converter,
    void* inbuf,
    gsize inbuf_size,
    void* outbuf,
    gsize outbuf_size,
    GConverterFlags flags,
    gsize* bytes_read,
    gsize* bytes_written,
    GError** error
  );
  void (* reset) (
    GConverter* converter
  );
  
}

提供了一种将数据从一种类型转换为另一种类型的接口。转换可以是状态的,并且可能在任何地方失败。

接口成员
g_iface
GTypeInterface
 

父接口。

convert
GConverterResult (* convert) (
    GConverter* converter,
    void* inbuf,
    gsize inbuf_size,
    void* outbuf,
    gsize outbuf_size,
    GConverterFlags flags,
    gsize* bytes_read,
    gsize* bytes_written,
    GError** error
  )
 

转换数据。

reset
void (* reset) (
    GConverter* converter
  )
 

将转换器的内部状态回退到其初始状态。

虚方法

Gio.Converter.convert

这是在转换数据时使用的主体操作。需要在循环中多次调用,并且每次都会做一些工作,即产生一些输出(在 outbuf 中)或消耗一些输入(从 inbuf 中),或者两者都有。如果无法执行任何工作,将返回错误。

自:2.24

Gio.Converter.reset

重置转换器中所有内部状态,使其表现得就像刚创建时一样。如果转换器有任何会生成输出的内部状态,则该输出将丢失。

自:2.24