aardio 文档

raw.struct 库模块帮助文档

用法说明

raw.struct 要点:

raw.struct 对象两种内存同步方式:

raw 成员列表

raw.struct

创建静态内存结构体,在原生 API 函数中可作为指针类型参数使用。
aardio 结构体在与原生 API 交互时动态分配内存指针,
但静态内存结构体可以分配固定不变的内存指针。

读写静态内存结构体字段时直接自内存读写
如果结构体首个成员为原生类型数组,可直接用数值索引读写该数组成员。

静态内存结构体实例可作为原型函数调用复制新的静态内存结构体,
作为原型函数调用时可接控受任意个自定义返回对象字段值的表参数

创建静态内存结构体。
静态内存结构体可直接传入其他线程,
多线程可直接共享同一静态内存结构体内存指针,
但必须由创建静态内存结构体的线程负责维护该结构体的有效生命周期,
多线程读写此静态内存结构体时不会自动加锁

raw.struct()

返回对象:RawStructObject

raw.struct(结构体对象)

创建并返回静态内存结构体实例,
返回的静态内存结构体将自动分配 buffer 并绑定该 buffer 指针

raw.struct(结构体类)

返回用于创建静态内存结构体的类对象,
返回类创建静态内存结构体时自动分配 buffer 并绑定该 buffer 指针

raw.struct(结构体类,内存指针)

创建并返回返回静态内存结构体实例,并绑定参数@2指定的内存指针,
参数@1可以是结构体类或结构体实例对象

RawStructObject 成员列表

RawStructObject.?

读写结构体的字段值。
每次读写都会访问绑定的原生内存并交换数据。

可以使用 get 函数读出为普通结构体。
或用 set 函数一次写入普通结构体。
这样有更好的性能

RawStructObject.get()

返回对象绑定的普通结构体。
普通结构体操作更快,在修改完成以后
再调用 set 函数写回去就可以了。

get 函数只能用 . 成员操作符访问,且只能用于函数调用语句,
否则 get 仅作为结构体字段名使用。

RawStructObject.set

将结构体的值写入原生内存。

set 函数只能用 . 成员操作符访问,且只能用于函数调用语句,
否则 set 仅作为结构体字段名使用

RawStructObject.set()

如果不指定任何参数,则将结构体所有字段重新写入原生内存。
写入前不会先自原生内存读取结构体,不保留原生内存的任何字段值。

RawStructObject.set(tab,overwrite)

如果参数 @tab 指定了表对象,
且参数 @overwrite 不为 true,则先自原生内存读取结构体。
然后用参数 @tab 指定表对象的所有字段非 null 值更新结构体。
未在参数中指定的字段将保留原生内存当前字段值。

注意此函数不能写入字段的 null 值。

Markdown 格式