当前位置: 首页>>代码示例>>C++>>正文


C++ checkuserdata函数代码示例

本文整理汇总了C++中checkuserdata函数的典型用法代码示例。如果您正苦于以下问题:C++ checkuserdata函数的具体用法?C++ checkuserdata怎么用?C++ checkuserdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了checkuserdata函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的checkuserdata函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。