XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
XWLUA虚拟机的CAPI库
XWLUA虚拟机的CAPI库 的协作图:
void xwlua_vm_dump_table (lua_State *vm, int idx, int nest)
 显示表的内容
 
void xwlua_vm_dump_stack (lua_State *vm)
 显示栈上的内容
 
xwer_t xwlua_vm_copy_function (lua_State *src, int sidx, lua_State *dst)
 将源虚拟机栈中的函数拷贝到目的虚拟机的栈顶
 
xwer_t xwlua_vm_copy_userdata (lua_State *src, int idx, lua_State *dst)
 将虚拟机中的用户数据拷贝到目的虚拟机的栈顶
 
xwer_t xwlua_vm_copy_table (lua_State *src, int sidx, lua_State *dst)
 将虚拟机中的表拷贝到目的虚拟机的栈顶
 
xwer_t xwlua_vm_copy_element (lua_State *src, int sidx, lua_State *dst)
 将源虚拟机栈中的元素拷贝到目的虚拟机栈的栈顶
 
xwer_t xwlua_vm_move_element (lua_State *src, int sidx, lua_State *dst)
 将源虚拟机栈中的元素移动到目的虚拟机栈的栈顶
 
void xwlua_vm_copy_env (lua_State *src, int sidx, lua_State *dst)
 将源虚拟机中的表元素拷贝到目的虚拟机的环境 _ENV
 

详细描述

函数说明

◆ xwlua_vm_copy_element()

xwer_t xwlua_vm_copy_element ( lua_State *  src,
int  sidx,
lua_State *  dst 
)

将源虚拟机栈中的元素拷贝到目的虚拟机栈的栈顶

参数
[in]src源虚拟机
[in]sidx源表在源虚拟机栈中的索引
[in]dst目的虚拟机
返回
错误吗
返回值
XWOK没有错误
-EINVAL拷贝失败
-ENOTSUP暂时不支持拷贝的类型

此函数将源虚拟机栈 src 中索引为 sidx元素 拷贝到目的虚拟机 dst栈顶

  • 若拷贝成功,返回值为 XWOK
  • 若拷贝失败,返回值小于 0 ,目的虚拟机 dst 的栈顶会压入一个 nil

◆ xwlua_vm_copy_env()

void xwlua_vm_copy_env ( lua_State *  src,
int  sidx,
lua_State *  dst 
)

将源虚拟机中的表元素拷贝到目的虚拟机的环境 _ENV

参数
[in]src源虚拟机
[in]sidx表在源虚拟机栈中的索引
[in]dst目的虚拟机
  • 此函数只会将源虚拟机表中索引为 字符串 的键值对拷贝到目的虚拟机的 _ENV 中, 其他类型的索引会被忽略;
  • 拷贝失败不会中止拷贝过程,目的虚拟机 _ENV 中拷贝失败的索引会被设置为 nil

◆ xwlua_vm_copy_function()

xwer_t xwlua_vm_copy_function ( lua_State *  src,
int  sidx,
lua_State *  dst 
)

将源虚拟机栈中的函数拷贝到目的虚拟机的栈顶

参数
[in]src源虚拟机
[in]sidx函数在源虚拟机栈中的索引
[in]dst目的虚拟机
返回
错误吗
返回值
XWOK没有错误
-EINVAL拷贝失败

此函数将源虚拟机栈 src 中索引为 sidx函数 拷贝到目的虚拟机 dst栈顶

  • 若拷贝成功,返回值为 XWOK
  • 若拷贝失败,返回值小于 0 ,目的虚拟机 dst 的栈顶会压入一个 nil

◆ xwlua_vm_copy_table()

xwer_t xwlua_vm_copy_table ( lua_State *  src,
int  sidx,
lua_State *  dst 
)

将虚拟机中的表拷贝到目的虚拟机的栈顶

参数
[in]src源虚拟机
[in]idx表在源虚拟机栈中的索引
[in]dst目的虚拟机
返回
错误吗
返回值
XWOK没有错误
-EINVAL拷贝失败

此函数会在目的虚拟机 dst栈顶 新建一个空表, 然后将源虚拟机栈 src 中索引为 sidx 拷贝到这个空表内。

  • 若拷贝成功,返回值为 XWOK
  • 若拷贝失败,返回值小于 0 ,目的虚拟机 dst 的栈顶会压入一个 nil

◆ xwlua_vm_copy_userdata()

xwer_t xwlua_vm_copy_userdata ( lua_State *  src,
int  idx,
lua_State *  dst 
)

将虚拟机中的用户数据拷贝到目的虚拟机的栈顶

参数
[in]src源虚拟机
[in]idx用户数据在源虚拟机栈中的索引
[in]dst目的虚拟机
返回
错误吗
返回值
XWOK没有错误
-EINVAL拷贝失败

此函数将源虚拟机栈 src 中索引为 sidx用户数据 拷贝到目的虚拟机 dst栈顶

  • 若拷贝成功,返回值为 XWOK
  • 若拷贝失败,返回值小于 0 ,目的虚拟机 dst 的栈顶会压入一个 nil

◆ xwlua_vm_dump_stack()

void xwlua_vm_dump_stack ( lua_State *  vm)

显示栈上的内容

参数
[in]vm虚拟机

此函数可将虚拟机栈上的内容显示到终端上。

◆ xwlua_vm_dump_table()

void xwlua_vm_dump_table ( lua_State *  vm,
int  idx,
int  nest 
)

显示表的内容

参数
[in]vm虚拟机
[in]idx表在虚拟机栈中的索引
[in]nest嵌套的层数

此函数可将索引为 idx 的表中的内容显示到终端上。

此函数是递归函数, nest 指明此函数递归了多少次。

◆ xwlua_vm_move_element()

xwer_t xwlua_vm_move_element ( lua_State *  src,
int  sidx,
lua_State *  dst 
)

将源虚拟机栈中的元素移动到目的虚拟机栈的栈顶

参数
[in]src源虚拟机
[in]sidx源表在源虚拟机栈中的索引
[in]dst目的虚拟机
返回
错误吗
返回值
XWOK没有错误
-EINVAL拷贝失败
-ENOTSUP暂时不支持拷贝的类型

此函数将源虚拟机栈 src 中索引为 sidx元素 移动到目的虚拟机 dst栈顶

  • 若移动成功,返回值为 XWOK ,索引为 sidx元素 在源虚拟机栈 src 中被删除;
  • 若移动失败,返回值小于 0 ,目的虚拟机 dst 的栈顶会压入一个 nil