• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ checkuserdata函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cherokee_buffer_is_empty函数代码示例发布时间:2022-05-30
下一篇:
C++ checkudata函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap