diff --git a/src/poller.nobj.lua b/src/poller.nobj.lua index 2b75b62..39b4938 100644 --- a/src/poller.nobj.lua +++ b/src/poller.nobj.lua @@ -272,10 +272,10 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); constructor "new" { var_in{ "unsigned int", "length", is_optional = true, default = 10 }, - c_method_call "void" "poller_init" { "unsigned int", "length" }, + c_export_method_call "void" "poller_init" { "unsigned int", "length" }, }, destructor "close" { - c_method_call "void" "poller_cleanup" {}, + c_export_method_call "void" "poller_cleanup" {}, }, method "add" { var_in{ "", "sock" }, @@ -310,7 +310,7 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); else error("expected number or ZMQ_Socket") end - ${idx} = C.poller_get_free_item(${this}) + ${idx} = Cmod.poller_get_free_item(${this}) local item = ${this}.items[${idx}] item.socket = sock item.fd = fd @@ -358,11 +358,11 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); if sock_type == 'cdata' then sock = obj_type_ZMQ_Socket_check(${sock}) -- find sock in items list. - ${idx} = C.poller_find_sock_item(${this}, sock) + ${idx} = Cmod.poller_find_sock_item(${this}, sock) elseif sock_type == 'number' then fd = ${sock} -- find fd in items list. - ${idx} = C.poller_find_fd_item(${this}, fd); + ${idx} = Cmod.poller_find_fd_item(${this}, fd); else error("expected number or ZMQ_Socket") end @@ -372,7 +372,7 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); item.fd = fd item.events = ${events} else - C.poller_remove_item(${this}, ${idx}) + Cmod.poller_remove_item(${this}, ${idx}) end ]], }, @@ -407,26 +407,24 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); if sock_type == 'cdata' then sock = obj_type_ZMQ_Socket_check(${sock}) -- find sock in items list. - ${idx} = C.poller_find_sock_item(${this}, sock) + ${idx} = Cmod.poller_find_sock_item(${this}, sock) elseif sock_type == 'number' then fd = ${sock} -- find fd in items list. - ${idx} = C.poller_find_fd_item(${this}, fd); + ${idx} = Cmod.poller_find_fd_item(${this}, fd); else error("expected number or ZMQ_Socket") end if ${idx} >= 0 then - C.poller_remove_item(${this}, ${idx}) + Cmod.poller_remove_item(${this}, ${idx}) end ]], }, method "poll" { - var_in{ "long", "timeout" }, var_out{ "int", "count" }, - var_out{ "ZMQ_Error", "err" }, + -- poll for events + c_export_method_call { "ZMQ_Error", "err>2" } "poller_poll" { "long", "timeout" }, c_source[[ - /* poll for events */ - ${err} = poller_poll(${this}, ${timeout}); if(${err} > 0) { ${this}->next = 0; ${count} = ${err}; @@ -436,8 +434,6 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); } ]], ffi_source[[ - -- poll for events - ${err} = C.poller_poll(${this}, ${timeout}) if(${err} > 0) then ${this}.next = 0 ${count} = ${err} @@ -448,7 +444,7 @@ void poller_remove_item(ZMQ_Poller *poller, int idx); ]], }, method "next_revents_idx" { - c_method_call { "int", "idx>1" } "poller_next_revents" { "int", "&revents>2" }, + c_export_method_call { "int", "idx>1" } "poller_next_revents" { "int", "&revents>2" }, }, method "count" { var_out{ "int", "count" }, diff --git a/src/pre_generated-zmq.nobj.c b/src/pre_generated-zmq.nobj.c index db8865c..4e1759e 100644 --- a/src/pre_generated-zmq.nobj.c +++ b/src/pre_generated-zmq.nobj.c @@ -351,6 +351,7 @@ static const char *nobj_lua_Reader(lua_State *L, void *data, size_t *size) { nobj_reader_state *state = (nobj_reader_state *)data; const char *ptr; + (void)L; ptr = state->ffi_init_code[state->offset]; if(ptr != NULL) { *size = strlen(ptr); @@ -523,7 +524,7 @@ static FUNC_UNUSED void *obj_udata_luacheck(lua_State *L, int _index, obj_type * static FUNC_UNUSED void *obj_udata_luaoptional(lua_State *L, int _index, obj_type *type) { void *obj = NULL; - if(lua_isnil(L, _index)) { + if(lua_gettop(L) < _index) { return obj; } obj_udata_luacheck_internal(L, _index, &(obj), type, 1); @@ -731,7 +732,7 @@ static FUNC_UNUSED void * obj_simple_udata_luacheck(lua_State *L, int _index, ob } static FUNC_UNUSED void * obj_simple_udata_luaoptional(lua_State *L, int _index, obj_type *type) { - if(lua_isnil(L, _index)) { + if(lua_gettop(L) < _index) { return NULL; } return obj_simple_udata_luacheck(L, _index, type); @@ -1398,6 +1399,8 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" "\n" "void poller_cleanup(ZMQ_Poller *);\n" "\n" +"ZMQ_Error poller_poll(ZMQ_Poller *, long);\n" +"\n" "int poller_next_revents(ZMQ_Poller *, int*);\n" "\n" "ZMQ_Error zmq_term(ZMQ_Ctx *);\n" @@ -1612,8 +1615,8 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" "\n" " function obj_type_ZMQ_Ctx_check(ptr)\n" " -- if ptr is nil or is the correct type, then just return it.\n" -" if not ptr or ffi.istype(obj_ctype, ptr) then return ptr end\n" -" -- check if it is a compatible type.\n", /* ----- CUT ----- */ +" if not ptr or ffi.istype(obj_ctype, ptr) then return ptr end\n", /* ----- CUT ----- */ +" -- check if it is a compatible type.\n" " local ctype = tostring(ffi.typeof(ptr))\n" " local bcaster = _obj_subs.ZMQ_Ctx[ctype]\n" " if bcaster then\n" @@ -2207,8 +2210,8 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" "end\n" "end\n" "end\n" -"\n" -"-- method: set_affinity\n", /* ----- CUT ----- */ +"\n", /* ----- CUT ----- */ +"-- method: set_affinity\n" "if (_M.VERSION_2_0 or _M.VERSION_3_0) then\n" "function _meth.ZMQ_Socket.set_affinity(self, value2)\n" " \n" @@ -2905,7 +2908,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" "function _pub.ZMQ_Poller.new(length1)\n" " length1 = length1 or 10\n" " local self = ffi.new(\"ZMQ_Poller\")\n" -" C.poller_init(self, length1)\n" +" Cmod.poller_init(self, length1)\n" " return obj_type_ZMQ_Poller_push(self)\n" "end\n" "register_default_constructor(_pub,\"ZMQ_Poller\",_pub.ZMQ_Poller.new)\n" @@ -2914,7 +2917,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" "function _meth.ZMQ_Poller.close(self)\n" " local self = obj_type_ZMQ_Poller_delete(self)\n" " if not self then return end\n" -" C.poller_cleanup(self)\n" +" Cmod.poller_cleanup(self)\n" " return \n" "end\n" "_priv.ZMQ_Poller.__gc = _meth.ZMQ_Poller.close\n" @@ -2933,7 +2936,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " else\n" " error(\"expected number or ZMQ_Socket\")\n" " end\n" -" idx1 = C.poller_get_free_item(self)\n" +" idx1 = Cmod.poller_get_free_item(self)\n" " local item = self.items[idx1]\n" " item.socket = sock\n" " item.fd = fd\n" @@ -2952,11 +2955,11 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " if sock_type == 'cdata' then\n" " sock = obj_type_ZMQ_Socket_check(sock2)\n" " -- find sock in items list.\n" -" idx1 = C.poller_find_sock_item(self, sock)\n" +" idx1 = Cmod.poller_find_sock_item(self, sock)\n" " elseif sock_type == 'number' then\n" " fd = sock2\n" " -- find fd in items list.\n" -" idx1 = C.poller_find_fd_item(self, fd);\n" +" idx1 = Cmod.poller_find_fd_item(self, fd);\n" " else\n" " error(\"expected number or ZMQ_Socket\")\n" " end\n" @@ -2966,7 +2969,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " item.fd = fd\n" " item.events = events3\n" " else\n" -" C.poller_remove_item(self, idx1)\n" +" Cmod.poller_remove_item(self, idx1)\n" " end\n" "\n" " return idx1\n" @@ -2981,16 +2984,16 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " if sock_type == 'cdata' then\n" " sock = obj_type_ZMQ_Socket_check(sock2)\n" " -- find sock in items list.\n" -" idx1 = C.poller_find_sock_item(self, sock)\n" +" idx1 = Cmod.poller_find_sock_item(self, sock)\n" " elseif sock_type == 'number' then\n" " fd = sock2\n" " -- find fd in items list.\n" -" idx1 = C.poller_find_fd_item(self, fd);\n" +" idx1 = Cmod.poller_find_fd_item(self, fd);\n" " else\n" " error(\"expected number or ZMQ_Socket\")\n" " end\n" " if idx1 >= 0 then\n" -" C.poller_remove_item(self, idx1)\n" +" Cmod.poller_remove_item(self, idx1)\n" " end\n" "\n" " return idx1\n" @@ -3002,8 +3005,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " \n" " local count1 = 0\n" " local err2 = 0\n" -" -- poll for events\n" -" err2 = C.poller_poll(self, timeout2)\n" +" err2 = Cmod.poller_poll(self, timeout2)\n" " if(err2 > 0) then\n" " self.next = 0\n" " count1 = err2\n" @@ -3025,7 +3027,7 @@ static const char *zmq_ffi_lua_code[] = { "local ffi=require\"ffi\"\n" " \n" " local idx1 = 0\n" " local revents2 = next_revents_idx_revents_tmp\n" -" idx1 = C.poller_next_revents(self, revents2)\n" +" idx1 = Cmod.poller_next_revents(self, revents2)\n" " return idx1, revents2[0]\n" "end\n" "end\n" @@ -5509,8 +5511,7 @@ static int ZMQ_Poller__poll__meth(lua_State *L) { long timeout2 = luaL_checkinteger(L,2); int count1 = 0; ZMQ_Error err2 = 0; - /* poll for events */ - err2 = poller_poll(this1, timeout2); + err2 = poller_poll(this1, timeout2); if(err2 > 0) { this1->next = 0; count1 = err2;