static int hsr_read_message(lua_State* lua) { int n = lua_gettop(lua); if (n < 1 || n > 4) { return luaL_error(lua, "read_message() incorrect number of arguments"); } heka_stream_reader* hsr = check_hsr(lua, n); lua_remove(lua, 1); // remove the hsr user data return hs_read_message(lua, &hsr->msg); }
static int read_message(lua_State* lua) { lua_sandbox* lsb = lua_touserdata(lua, lua_upvalueindex(1)); if (!lsb) { return luaL_error(lua, "read_message() invalid upvalueindex"); } hs_output_plugin* p = (hs_output_plugin*)lsb_get_parent(lsb); if (!p->matched || !p->msg) { lua_pushnil(lua); return 1; } return hs_read_message(lua, p->msg); }
static int read_message(lua_State* lua) { void* luserdata = lua_touserdata(lua, lua_upvalueindex(1)); if (NULL == luserdata) { return luaL_error(lua, "read_message() invalid lightuserdata"); } lua_sandbox* lsb = (lua_sandbox*)luserdata; hs_analysis_plugin* p = (hs_analysis_plugin*)lsb_get_parent(lsb); if (!p->at->matched || !p->at->msg) { lua_pushnil(lua); return 1; } return hs_read_message(lua, p->at->msg); }