コード例 #1
0
ファイル: driver.c プロジェクト: neuroidss/mqtt
/*
 * Lib initializer
 */
LUA_API
int
luaopen_mqtt_driver(lua_State *L)
{
	mosquitto_lib_init();
	mosq_initialized = true;

	/**
	 * Add metatable.__index = metatable
	 */
	luaL_newmetatable(L, MOSQ_LUA_UDATA_NAME);
	lua_pushvalue(L, -1);
	lua_setfield(L, -2, "__index");
	luaL_register(L, NULL, M);
	luaL_register(L, NULL, R);

	/**
	 * Add definitions
	 */
	mosq_register_defs(L, main_defs);

	return 1;
}
コード例 #2
0
int luaopen_mosquitto(lua_State *L)
{
	mosquitto_lib_init();
	mosq_initialized = 1;

#ifdef LUA_ENVIRONINDEX
	/* set private environment for this module */
	lua_newtable(L);
	lua_replace(L, LUA_ENVIRONINDEX);
#endif

	/* metatable.__index = metatable */
	luaL_newmetatable(L, MOSQ_META_CTX);
	lua_pushvalue(L, -1);
	lua_setfield(L, -2, "__index");
	luaL_setfuncs(L, ctx_M, 0);

	luaL_newlib(L, R);

	/* register callback defs into mosquitto table */
	mosq_register_defs(L, D);

	return 1;
}