本文整理汇总了C++中checkuserdata函数的典型用法代码示例。如果您正苦于以下问题:C++ checkuserdata函数的具体用法?C++ checkuserdata怎么用?C++ checkuserdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkuserdata函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: _decode
/*
:1 lightuserdata env
:2 function decode_message
:3 table target
:4 string type
:5 string data
:5 lightuserdata pointer
:6 integer len
table
*/
static int
_decode(lua_State *L) {
struct pbc_env * env = (struct pbc_env *)checkuserdata(L,1);
luaL_checktype(L, 2 , LUA_TFUNCTION);
luaL_checktype(L, 3 , LUA_TTABLE);
const char * type = luaL_checkstring(L,4);
struct pbc_slice slice;
if (lua_type(L,5) == LUA_TSTRING) {
size_t len;
slice.buffer = (void *)luaL_checklstring(L,5,&len);
slice.len = (int)len;
} else {
slice.buffer = checkuserdata(L,5);
slice.len = luaL_checkinteger(L,6);
}
lua_pushvalue(L, 2);
lua_pushvalue(L, 3);
lua_newtable(L);
int n = pbc_decode(env, type, &slice, decode_cb, L);
if (n<0) {
lua_pushboolean(L,0);
} else {
lua_pushboolean(L,1);
}
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:38,代码来源:pbc-lua53.c
示例2: _rmessage_delete
static int
_rmessage_delete(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
pbc_rmessage_delete(m);
return 0;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:7,代码来源:pbc-lua53.c
示例3: _last_error
/*
lightuserdata env
*/
static int
_last_error(lua_State *L) {
struct pbc_env * env = (struct pbc_env *)checkuserdata(L, 1);
const char * err = pbc_error(env);
lua_pushstring(L,err);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:10,代码来源:pbc-lua53.c
示例4: _wmessage_int64
static int
_wmessage_int64(lua_State *L) {
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
switch (lua_type(L,3)) {
case LUA_TSTRING : {
size_t len = 0;
const char * number = lua_tolstring(L,3,&len);
if (len !=8 ) {
return luaL_error(L,"Need an 8 length string for int64");
}
const uint32_t * v = (const uint32_t *) number;
pbc_wmessage_integer(m, key, v[0] , v[1]);
break;
}
case LUA_TLIGHTUSERDATA : {
void * v = lua_touserdata(L,3);
uint64_t v64 = (uintptr_t)v;
pbc_wmessage_integer(m, key, (uint32_t)v64 , (uint32_t)(v64>>32));
break;
}
default :
return luaL_error(L, "Need an int64 type");
}
return 0;
}
开发者ID:adroitly,项目名称:boom,代码行数:26,代码来源:pbc-lua.c
示例5: _wmessage_buffer_string
static int
_wmessage_buffer_string(lua_State *L) {
struct pbc_slice slice;
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
pbc_wmessage_buffer(m , &slice);
lua_pushlstring(L, (const char *)slice.buffer, slice.len);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:8,代码来源:pbc-lua53.c
示例6: _wmessage_new
static int
_wmessage_new(lua_State *L) {
struct pbc_env * env = (struct pbc_env *)checkuserdata(L,1);
const char * type_name = luaL_checkstring(L,2);
struct pbc_wmessage * ret = pbc_wmessage_new(env, type_name);
lua_pushlightuserdata(L,ret);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:8,代码来源:pbc-lua53.c
示例7: _wmessage_buffer
static int
_wmessage_buffer(lua_State *L) {
struct pbc_slice slice;
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
pbc_wmessage_buffer(m , &slice);
lua_pushlightuserdata(L, slice.buffer);
lua_pushinteger(L, slice.len);
return 2;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:9,代码来源:pbc-lua53.c
示例8: _wmessage_message
static int
_wmessage_message(lua_State *L) {
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
struct pbc_wmessage * ret = pbc_wmessage_message(m, key);
lua_pushlightuserdata(L, ret);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:9,代码来源:pbc-lua53.c
示例9: _rmessage_message
static int
_rmessage_message(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = lua_tointeger(L,3);
struct pbc_rmessage * v = pbc_rmessage_message(m,key,index);
lua_pushlightuserdata(L,v);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:9,代码来源:pbc-lua53.c
示例10: _wmessage_real
static int
_wmessage_real(lua_State *L) {
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
double number = luaL_checknumber(L,3);
pbc_wmessage_real(m, key, number);
return 0;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:9,代码来源:pbc-lua53.c
示例11: _env_type
static int
_env_type(lua_State *L) {
lua_settop(L,3);
struct pbc_env * env = checkuserdata(L,1);
const char * typename = luaL_checkstring(L,2);
if (lua_isnil(L,3)) {
int ret = pbc_type(env, typename, NULL, NULL);
lua_pushboolean(L,ret);
return 1;
}
开发者ID:zhangjunlei26,项目名称:pbc,代码行数:10,代码来源:pbc-lua.c
示例12: _rmessage_int32
static int
_rmessage_int32(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = (int)luaL_checkinteger(L,3);
uint32_t v = pbc_rmessage_integer(m, key, index, NULL);
lua_pushlightuserdata(L,(void *)(intptr_t)v);
return 1;
}
开发者ID:adroitly,项目名称:boom,代码行数:10,代码来源:pbc-lua.c
示例13: _rmessage_string
static int
_rmessage_string(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = lua_tointeger(L,3);
int sz = 0;
const char * v = pbc_rmessage_string(m,key,index,&sz);
lua_pushlstring(L,v,sz);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:10,代码来源:pbc-lua53.c
示例14: _wmessage_int52
static int
_wmessage_int52(lua_State *L) {
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int64_t number = (int64_t)(luaL_checknumber(L,3));
uint32_t hi = (uint32_t)(number >> 32);
pbc_wmessage_integer(m, key, (uint32_t)number, hi);
return 0;
}
开发者ID:adroitly,项目名称:boom,代码行数:10,代码来源:pbc-lua.c
示例15: _rmessage_integer
static int
_rmessage_integer(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = luaL_checkinteger(L,3);
int32_t v = (int32_t)pbc_rmessage_integer(m, key, index, NULL);
lua_pushinteger(L,v);
return 1;
}
开发者ID:867344633,项目名称:QService,代码行数:11,代码来源:pbc-lua.cpp
示例16: _rmessage_real
static int
_rmessage_real(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = luaL_checkinteger(L,3);
double v = pbc_rmessage_real(m, key, index);
lua_pushnumber(L,v);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:11,代码来源:pbc-lua53.c
示例17: _wmessage_int32
static int
_wmessage_int32(lua_State *L) {
struct pbc_wmessage * m = (struct pbc_wmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
if (!lua_islightuserdata(L,3)) {
return luaL_error(L,"Need a lightuserdata for int32");
}
void *number = lua_touserdata(L,3);
pbc_wmessage_integer(m, key, (uint32_t)(intptr_t)number , 0);
return 0;
}
开发者ID:adroitly,项目名称:boom,代码行数:11,代码来源:pbc-lua.c
示例18: _rmessage_size
static int
_rmessage_size(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int sz = pbc_rmessage_size(m, key);
lua_pushinteger(L, sz);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:11,代码来源:pbc-lua53.c
示例19: _env_enum_id
static int
_env_enum_id(lua_State *L) {
struct pbc_env * env = (struct pbc_env *)checkuserdata(L,1);
size_t sz = 0;
const char* enum_type = luaL_checklstring(L, 2, &sz);
const char* enum_name = luaL_checklstring(L, 3, &sz);
int32_t enum_id = pbc_enum_id(env, enum_type, enum_name);
if (enum_id < 0)
return 0;
lua_pushinteger(L, enum_id);
return 1;
}
开发者ID:doublefox1981,项目名称:pbc,代码行数:12,代码来源:pbc-lua53.c
示例20: _rmessage_int64
static int
_rmessage_int64(lua_State *L) {
struct pbc_rmessage * m = (struct pbc_rmessage *)checkuserdata(L,1);
const char * key = luaL_checkstring(L,2);
int index = (int)luaL_checkinteger(L,3);
uint32_t v[2];
v[0] = pbc_rmessage_integer(m, key, index, &v[1]);
lua_pushlstring(L,(const char *)v,sizeof(v));
return 1;
}
开发者ID:adroitly,项目名称:boom,代码行数:12,代码来源:pbc-lua.c
注:本文中的checkuserdata函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论