From 7adc63d08957f0bd75e7bf289ca273f6f89caf03 Mon Sep 17 00:00:00 2001 From: "Robert G. Jakabosky" Date: Wed, 22 Feb 2012 18:11:02 -0800 Subject: [PATCH] Fix problem with FFI support on windows. --- src/pre_generated-zmq.nobj.c | 156 ++++++++++++++++++----------------- src/socket.nobj.lua | 24 ++++-- zmq.nobj.lua | 6 ++ 3 files changed, 104 insertions(+), 82 deletions(-) diff --git a/src/pre_generated-zmq.nobj.c b/src/pre_generated-zmq.nobj.c index 6071a71..893466f 100644 --- a/src/pre_generated-zmq.nobj.c +++ b/src/pre_generated-zmq.nobj.c @@ -39,9 +39,6 @@ #ifdef __WINDOWS__ -/* disable FFI bindings for windows, it is broken right now. */ -#undef LUAJIT_FFI -#define LUAJIT_FFI 0 /* for MinGW32 compiler need to include */ #ifdef __GNUC__ #include @@ -1172,7 +1169,31 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " _G[obj_name] = obj_pub\n" " end\n" "end\n" -"C = ffi_load_cmodule(\"zmq\", false)\n" +"\n" +"-- detect zmq version\n" +"local VERSION_2_0 = true\n" +"local VERSION_2_1 = false\n" +"local VERSION_3_0 = false\n" +"local zver = _M.version()\n" +"if zver[1] == 3 then\n" +" VERSION_2_0 = false\n" +" VERSION_3_0 = true\n" +"elseif zver[1] == 2 and zver[2] == 1 then\n" +" VERSION_2_1 = true\n" +"end\n" +"\n" +"if VERSION_2_0 then\n" +" ffi.cdef[==[\n" +"typedef int ZMQ_Error;\n" +"typedef struct ZMQ_Socket ZMQ_Socket;\n" +"typedef struct zmq_msg_t zmq_msg_t;\n" +"\n" +"ZMQ_Error zmq_sendmsg(ZMQ_Socket *sock, zmq_msg_t *msg, int flags) __asm__(\"zmq_send\");\n" +"ZMQ_Error zmq_recvmsg(ZMQ_Socket *sock, zmq_msg_t *msg, int flags) __asm__(\"zmq_recv\");\n" +"]==]\n" +"end\n" +"\n" +"local Cmod = ffi_load_cmodule(\"zmq\", false)\n" "\n" "ffi.cdef[[\n" "typedef int ZMQ_Error;\n" @@ -1326,10 +1347,6 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" "\n" "ZMQ_Error lzmq_socket_set_ipv4only(ZMQ_Socket *, int);\n" "\n" -"typedef ZMQ_Error (*zmq_sendmsg_func)(ZMQ_Socket * this, zmq_msg_t * msg, int flags);\n" -"\n" -"typedef ZMQ_Error (*zmq_recvmsg_func)(ZMQ_Socket * this, zmq_msg_t * msg, int flags);\n" -"\n" "typedef int socket_t;\n" "typedef struct zmq_pollitem_t {\n" " ZMQ_Socket *socket;\n" @@ -1684,9 +1701,10 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" "end\n" "\n" "\n" -"local zmq_sendmsg = ffi.new(\"zmq_sendmsg_func\", _priv[\"zmq_sendmsg\"])\n" -"\n" -"local zmq_recvmsg = ffi.new(\"zmq_recvmsg_func\", _priv[\"zmq_recvmsg\"])\n" +"local os_lib_table = {\n" +" [\"Windows\"] = \"libzmq\",\n" +"}\n" +"C = ffi_load(os_lib_table[ffi.os] or \"zmq\")\n" "\n" "\n" "-- Start \"ZErrors\" FFI interface\n" @@ -1881,18 +1899,6 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" "\n" "\n" "-- Start \"ZMQ_Socket\" FFI interface\n" -"-- detect zmq version\n" -"local VERSION_2_0 = true\n" -"local VERSION_2_1 = false\n" -"local VERSION_3_0 = false\n" -"local zver = _M.version()\n" -"if zver[1] == 3 then\n" -" VERSION_2_0 = false\n" -" VERSION_3_0 = true\n" -"elseif zver[1] == 2 and zver[2] == 1 then\n" -" VERSION_2_1 = true\n" -"end\n" -"\n" "-- method: close\n" "function _meth.ZMQ_Socket.close(self)\n" " local self,this_flags1 = obj_type_ZMQ_Socket_delete(self)\n" @@ -2028,7 +2034,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " flags3 = flags3 or 0\n" " local rc_zmq_sendmsg1 = 0\n" -" rc_zmq_sendmsg1 = zmq_sendmsg(self, msg2, flags3)\n" +" rc_zmq_sendmsg1 = C.zmq_sendmsg(self, msg2, flags3)\n" " -- check for error.\n" " if (-1 == rc_zmq_sendmsg1) then\n" " return nil, error_code__ZMQ_Error__push(rc_zmq_sendmsg1)\n" @@ -2042,7 +2048,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " local data_len2 = #data2\n" " flags3 = flags3 or 0\n" " local rc_simple_zmq_send1 = 0\n" -" rc_simple_zmq_send1 = C.simple_zmq_send(self, data2, data_len2, flags3)\n" +" rc_simple_zmq_send1 = Cmod.simple_zmq_send(self, data2, data_len2, flags3)\n" " -- check for error.\n" " if (-1 == rc_simple_zmq_send1) then\n" " return nil, error_code__ZMQ_Error__push(rc_simple_zmq_send1)\n" @@ -2056,7 +2062,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " flags3 = flags3 or 0\n" " local rc_zmq_recvmsg1 = 0\n" -" rc_zmq_recvmsg1 = zmq_recvmsg(self, msg2, flags3)\n" +" rc_zmq_recvmsg1 = C.zmq_recvmsg(self, msg2, flags3)\n" " -- check for error.\n" " if (-1 == rc_zmq_recvmsg1) then\n" " return nil, error_code__ZMQ_Error__push(rc_zmq_recvmsg1)\n" @@ -2105,7 +2111,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = hwm_value_tmp\n" " local rc_lzmq_socket_hwm2 = 0\n" -" rc_lzmq_socket_hwm2 = C.lzmq_socket_hwm(self, value1)\n" +" rc_lzmq_socket_hwm2 = Cmod.lzmq_socket_hwm(self, value1)\n" " if (-1 == rc_lzmq_socket_hwm2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_hwm2)\n" " end\n" @@ -2120,7 +2126,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_hwm1 = 0\n" -" rc_lzmq_socket_set_hwm1 = C.lzmq_socket_set_hwm(self, value2)\n" +" rc_lzmq_socket_set_hwm1 = Cmod.lzmq_socket_set_hwm(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_hwm1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_hwm1)\n" @@ -2137,7 +2143,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = swap_value_tmp\n" " local rc_lzmq_socket_swap2 = 0\n" -" rc_lzmq_socket_swap2 = C.lzmq_socket_swap(self, value1)\n" +" rc_lzmq_socket_swap2 = Cmod.lzmq_socket_swap(self, value1)\n" " if (-1 == rc_lzmq_socket_swap2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_swap2)\n" " end\n" @@ -2152,7 +2158,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_swap1 = 0\n" -" rc_lzmq_socket_set_swap1 = C.lzmq_socket_set_swap(self, value2)\n" +" rc_lzmq_socket_set_swap1 = Cmod.lzmq_socket_set_swap(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_swap1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_swap1)\n" @@ -2169,7 +2175,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = affinity_value_tmp\n" " local rc_lzmq_socket_affinity2 = 0\n" -" rc_lzmq_socket_affinity2 = C.lzmq_socket_affinity(self, value1)\n" +" rc_lzmq_socket_affinity2 = Cmod.lzmq_socket_affinity(self, value1)\n" " if (-1 == rc_lzmq_socket_affinity2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_affinity2)\n" " end\n" @@ -2184,7 +2190,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_affinity1 = 0\n" -" rc_lzmq_socket_set_affinity1 = C.lzmq_socket_set_affinity(self, value2)\n" +" rc_lzmq_socket_set_affinity1 = Cmod.lzmq_socket_set_affinity(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_affinity1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_affinity1)\n" @@ -2200,7 +2206,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " local value_len1 = 0\n" " local value1\n" " local rc_lzmq_socket_identity2 = 0\n" -" rc_lzmq_socket_identity2 = C.lzmq_socket_identity(self, value1, value_len1)\n" +" rc_lzmq_socket_identity2 = Cmod.lzmq_socket_identity(self, value1, value_len1)\n" " if (-1 == rc_lzmq_socket_identity2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_identity2)\n" " end\n" @@ -2214,7 +2220,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value_len2 = #value2\n" " local rc_lzmq_socket_set_identity1 = 0\n" -" rc_lzmq_socket_set_identity1 = C.lzmq_socket_set_identity(self, value2, value_len2)\n" +" rc_lzmq_socket_set_identity1 = Cmod.lzmq_socket_set_identity(self, value2, value_len2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_identity1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_identity1)\n" @@ -2229,7 +2235,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value_len2 = #value2\n" " local rc_lzmq_socket_subscribe1 = 0\n" -" rc_lzmq_socket_subscribe1 = C.lzmq_socket_subscribe(self, value2, value_len2)\n" +" rc_lzmq_socket_subscribe1 = Cmod.lzmq_socket_subscribe(self, value2, value_len2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_subscribe1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_subscribe1)\n" @@ -2244,7 +2250,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value_len2 = #value2\n" " local rc_lzmq_socket_unsubscribe1 = 0\n" -" rc_lzmq_socket_unsubscribe1 = C.lzmq_socket_unsubscribe(self, value2, value_len2)\n" +" rc_lzmq_socket_unsubscribe1 = Cmod.lzmq_socket_unsubscribe(self, value2, value_len2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_unsubscribe1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_unsubscribe1)\n" @@ -2261,7 +2267,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = rate_value_tmp\n" " local rc_lzmq_socket_rate2 = 0\n" -" rc_lzmq_socket_rate2 = C.lzmq_socket_rate(self, value1)\n" +" rc_lzmq_socket_rate2 = Cmod.lzmq_socket_rate(self, value1)\n" " if (-1 == rc_lzmq_socket_rate2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_rate2)\n" " end\n" @@ -2276,7 +2282,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_rate1 = 0\n" -" rc_lzmq_socket_set_rate1 = C.lzmq_socket_set_rate(self, value2)\n" +" rc_lzmq_socket_set_rate1 = Cmod.lzmq_socket_set_rate(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_rate1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_rate1)\n" @@ -2293,7 +2299,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = recovery_ivl_value_tmp\n" " local rc_lzmq_socket_recovery_ivl2 = 0\n" -" rc_lzmq_socket_recovery_ivl2 = C.lzmq_socket_recovery_ivl(self, value1)\n" +" rc_lzmq_socket_recovery_ivl2 = Cmod.lzmq_socket_recovery_ivl(self, value1)\n" " if (-1 == rc_lzmq_socket_recovery_ivl2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_recovery_ivl2)\n" " end\n" @@ -2308,7 +2314,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_recovery_ivl1 = 0\n" -" rc_lzmq_socket_set_recovery_ivl1 = C.lzmq_socket_set_recovery_ivl(self, value2)\n" +" rc_lzmq_socket_set_recovery_ivl1 = Cmod.lzmq_socket_set_recovery_ivl(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_recovery_ivl1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_recovery_ivl1)\n" @@ -2325,7 +2331,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = mcast_loop_value_tmp\n" " local rc_lzmq_socket_mcast_loop2 = 0\n" -" rc_lzmq_socket_mcast_loop2 = C.lzmq_socket_mcast_loop(self, value1)\n" +" rc_lzmq_socket_mcast_loop2 = Cmod.lzmq_socket_mcast_loop(self, value1)\n" " if (-1 == rc_lzmq_socket_mcast_loop2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_mcast_loop2)\n" " end\n" @@ -2340,7 +2346,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_mcast_loop1 = 0\n" -" rc_lzmq_socket_set_mcast_loop1 = C.lzmq_socket_set_mcast_loop(self, value2)\n" +" rc_lzmq_socket_set_mcast_loop1 = Cmod.lzmq_socket_set_mcast_loop(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_mcast_loop1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_mcast_loop1)\n" @@ -2357,7 +2363,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = sndbuf_value_tmp\n" " local rc_lzmq_socket_sndbuf2 = 0\n" -" rc_lzmq_socket_sndbuf2 = C.lzmq_socket_sndbuf(self, value1)\n" +" rc_lzmq_socket_sndbuf2 = Cmod.lzmq_socket_sndbuf(self, value1)\n" " if (-1 == rc_lzmq_socket_sndbuf2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_sndbuf2)\n" " end\n" @@ -2372,7 +2378,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_sndbuf1 = 0\n" -" rc_lzmq_socket_set_sndbuf1 = C.lzmq_socket_set_sndbuf(self, value2)\n" +" rc_lzmq_socket_set_sndbuf1 = Cmod.lzmq_socket_set_sndbuf(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_sndbuf1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_sndbuf1)\n" @@ -2389,7 +2395,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = rcvbuf_value_tmp\n" " local rc_lzmq_socket_rcvbuf2 = 0\n" -" rc_lzmq_socket_rcvbuf2 = C.lzmq_socket_rcvbuf(self, value1)\n" +" rc_lzmq_socket_rcvbuf2 = Cmod.lzmq_socket_rcvbuf(self, value1)\n" " if (-1 == rc_lzmq_socket_rcvbuf2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_rcvbuf2)\n" " end\n" @@ -2404,7 +2410,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_rcvbuf1 = 0\n" -" rc_lzmq_socket_set_rcvbuf1 = C.lzmq_socket_set_rcvbuf(self, value2)\n" +" rc_lzmq_socket_set_rcvbuf1 = Cmod.lzmq_socket_set_rcvbuf(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_rcvbuf1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_rcvbuf1)\n" @@ -2421,7 +2427,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = rcvmore_value_tmp\n" " local rc_lzmq_socket_rcvmore2 = 0\n" -" rc_lzmq_socket_rcvmore2 = C.lzmq_socket_rcvmore(self, value1)\n" +" rc_lzmq_socket_rcvmore2 = Cmod.lzmq_socket_rcvmore(self, value1)\n" " if (-1 == rc_lzmq_socket_rcvmore2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_rcvmore2)\n" " end\n" @@ -2438,7 +2444,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = fd_value_tmp\n" " local rc_lzmq_socket_fd2 = 0\n" -" rc_lzmq_socket_fd2 = C.lzmq_socket_fd(self, value1)\n" +" rc_lzmq_socket_fd2 = Cmod.lzmq_socket_fd(self, value1)\n" " if (-1 == rc_lzmq_socket_fd2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_fd2)\n" " end\n" @@ -2455,7 +2461,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = events_value_tmp\n" " local rc_lzmq_socket_events2 = 0\n" -" rc_lzmq_socket_events2 = C.lzmq_socket_events(self, value1)\n" +" rc_lzmq_socket_events2 = Cmod.lzmq_socket_events(self, value1)\n" " if (-1 == rc_lzmq_socket_events2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_events2)\n" " end\n" @@ -2472,7 +2478,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = type_value_tmp\n" " local rc_lzmq_socket_type2 = 0\n" -" rc_lzmq_socket_type2 = C.lzmq_socket_type(self, value1)\n" +" rc_lzmq_socket_type2 = Cmod.lzmq_socket_type(self, value1)\n" " if (-1 == rc_lzmq_socket_type2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_type2)\n" " end\n" @@ -2489,7 +2495,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = linger_value_tmp\n" " local rc_lzmq_socket_linger2 = 0\n" -" rc_lzmq_socket_linger2 = C.lzmq_socket_linger(self, value1)\n" +" rc_lzmq_socket_linger2 = Cmod.lzmq_socket_linger(self, value1)\n" " if (-1 == rc_lzmq_socket_linger2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_linger2)\n" " end\n" @@ -2504,7 +2510,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_linger1 = 0\n" -" rc_lzmq_socket_set_linger1 = C.lzmq_socket_set_linger(self, value2)\n" +" rc_lzmq_socket_set_linger1 = Cmod.lzmq_socket_set_linger(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_linger1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_linger1)\n" @@ -2521,7 +2527,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = reconnect_ivl_value_tmp\n" " local rc_lzmq_socket_reconnect_ivl2 = 0\n" -" rc_lzmq_socket_reconnect_ivl2 = C.lzmq_socket_reconnect_ivl(self, value1)\n" +" rc_lzmq_socket_reconnect_ivl2 = Cmod.lzmq_socket_reconnect_ivl(self, value1)\n" " if (-1 == rc_lzmq_socket_reconnect_ivl2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_reconnect_ivl2)\n" " end\n" @@ -2536,7 +2542,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_reconnect_ivl1 = 0\n" -" rc_lzmq_socket_set_reconnect_ivl1 = C.lzmq_socket_set_reconnect_ivl(self, value2)\n" +" rc_lzmq_socket_set_reconnect_ivl1 = Cmod.lzmq_socket_set_reconnect_ivl(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_reconnect_ivl1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_reconnect_ivl1)\n" @@ -2553,7 +2559,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = backlog_value_tmp\n" " local rc_lzmq_socket_backlog2 = 0\n" -" rc_lzmq_socket_backlog2 = C.lzmq_socket_backlog(self, value1)\n" +" rc_lzmq_socket_backlog2 = Cmod.lzmq_socket_backlog(self, value1)\n" " if (-1 == rc_lzmq_socket_backlog2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_backlog2)\n" " end\n" @@ -2568,7 +2574,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_backlog1 = 0\n" -" rc_lzmq_socket_set_backlog1 = C.lzmq_socket_set_backlog(self, value2)\n" +" rc_lzmq_socket_set_backlog1 = Cmod.lzmq_socket_set_backlog(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_backlog1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_backlog1)\n" @@ -2585,7 +2591,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = recovery_ivl_msec_value_tmp\n" " local rc_lzmq_socket_recovery_ivl_msec2 = 0\n" -" rc_lzmq_socket_recovery_ivl_msec2 = C.lzmq_socket_recovery_ivl_msec(self, value1)\n" +" rc_lzmq_socket_recovery_ivl_msec2 = Cmod.lzmq_socket_recovery_ivl_msec(self, value1)\n" " if (-1 == rc_lzmq_socket_recovery_ivl_msec2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_recovery_ivl_msec2)\n" " end\n" @@ -2600,7 +2606,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_recovery_ivl_msec1 = 0\n" -" rc_lzmq_socket_set_recovery_ivl_msec1 = C.lzmq_socket_set_recovery_ivl_msec(self, value2)\n" +" rc_lzmq_socket_set_recovery_ivl_msec1 = Cmod.lzmq_socket_set_recovery_ivl_msec(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_recovery_ivl_msec1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_recovery_ivl_msec1)\n" @@ -2617,7 +2623,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = reconnect_ivl_max_value_tmp\n" " local rc_lzmq_socket_reconnect_ivl_max2 = 0\n" -" rc_lzmq_socket_reconnect_ivl_max2 = C.lzmq_socket_reconnect_ivl_max(self, value1)\n" +" rc_lzmq_socket_reconnect_ivl_max2 = Cmod.lzmq_socket_reconnect_ivl_max(self, value1)\n" " if (-1 == rc_lzmq_socket_reconnect_ivl_max2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_reconnect_ivl_max2)\n" " end\n" @@ -2632,7 +2638,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_reconnect_ivl_max1 = 0\n" -" rc_lzmq_socket_set_reconnect_ivl_max1 = C.lzmq_socket_set_reconnect_ivl_max(self, value2)\n" +" rc_lzmq_socket_set_reconnect_ivl_max1 = Cmod.lzmq_socket_set_reconnect_ivl_max(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_reconnect_ivl_max1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_reconnect_ivl_max1)\n" @@ -2649,7 +2655,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = maxmsgsize_value_tmp\n" " local rc_lzmq_socket_maxmsgsize2 = 0\n" -" rc_lzmq_socket_maxmsgsize2 = C.lzmq_socket_maxmsgsize(self, value1)\n" +" rc_lzmq_socket_maxmsgsize2 = Cmod.lzmq_socket_maxmsgsize(self, value1)\n" " if (-1 == rc_lzmq_socket_maxmsgsize2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_maxmsgsize2)\n" " end\n" @@ -2664,7 +2670,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_maxmsgsize1 = 0\n" -" rc_lzmq_socket_set_maxmsgsize1 = C.lzmq_socket_set_maxmsgsize(self, value2)\n" +" rc_lzmq_socket_set_maxmsgsize1 = Cmod.lzmq_socket_set_maxmsgsize(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_maxmsgsize1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_maxmsgsize1)\n" @@ -2681,7 +2687,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = sndhwm_value_tmp\n" " local rc_lzmq_socket_sndhwm2 = 0\n" -" rc_lzmq_socket_sndhwm2 = C.lzmq_socket_sndhwm(self, value1)\n" +" rc_lzmq_socket_sndhwm2 = Cmod.lzmq_socket_sndhwm(self, value1)\n" " if (-1 == rc_lzmq_socket_sndhwm2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_sndhwm2)\n" " end\n" @@ -2696,7 +2702,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_sndhwm1 = 0\n" -" rc_lzmq_socket_set_sndhwm1 = C.lzmq_socket_set_sndhwm(self, value2)\n" +" rc_lzmq_socket_set_sndhwm1 = Cmod.lzmq_socket_set_sndhwm(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_sndhwm1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_sndhwm1)\n" @@ -2713,7 +2719,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = rcvhwm_value_tmp\n" " local rc_lzmq_socket_rcvhwm2 = 0\n" -" rc_lzmq_socket_rcvhwm2 = C.lzmq_socket_rcvhwm(self, value1)\n" +" rc_lzmq_socket_rcvhwm2 = Cmod.lzmq_socket_rcvhwm(self, value1)\n" " if (-1 == rc_lzmq_socket_rcvhwm2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_rcvhwm2)\n" " end\n" @@ -2728,7 +2734,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_rcvhwm1 = 0\n" -" rc_lzmq_socket_set_rcvhwm1 = C.lzmq_socket_set_rcvhwm(self, value2)\n" +" rc_lzmq_socket_set_rcvhwm1 = Cmod.lzmq_socket_set_rcvhwm(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_rcvhwm1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_rcvhwm1)\n" @@ -2745,7 +2751,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = multicast_hops_value_tmp\n" " local rc_lzmq_socket_multicast_hops2 = 0\n" -" rc_lzmq_socket_multicast_hops2 = C.lzmq_socket_multicast_hops(self, value1)\n" +" rc_lzmq_socket_multicast_hops2 = Cmod.lzmq_socket_multicast_hops(self, value1)\n" " if (-1 == rc_lzmq_socket_multicast_hops2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_multicast_hops2)\n" " end\n" @@ -2760,7 +2766,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_multicast_hops1 = 0\n" -" rc_lzmq_socket_set_multicast_hops1 = C.lzmq_socket_set_multicast_hops(self, value2)\n" +" rc_lzmq_socket_set_multicast_hops1 = Cmod.lzmq_socket_set_multicast_hops(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_multicast_hops1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_multicast_hops1)\n" @@ -2777,7 +2783,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = rcvtimeo_value_tmp\n" " local rc_lzmq_socket_rcvtimeo2 = 0\n" -" rc_lzmq_socket_rcvtimeo2 = C.lzmq_socket_rcvtimeo(self, value1)\n" +" rc_lzmq_socket_rcvtimeo2 = Cmod.lzmq_socket_rcvtimeo(self, value1)\n" " if (-1 == rc_lzmq_socket_rcvtimeo2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_rcvtimeo2)\n" " end\n" @@ -2792,7 +2798,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_rcvtimeo1 = 0\n" -" rc_lzmq_socket_set_rcvtimeo1 = C.lzmq_socket_set_rcvtimeo(self, value2)\n" +" rc_lzmq_socket_set_rcvtimeo1 = Cmod.lzmq_socket_set_rcvtimeo(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_rcvtimeo1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_rcvtimeo1)\n" @@ -2809,7 +2815,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = sndtimeo_value_tmp\n" " local rc_lzmq_socket_sndtimeo2 = 0\n" -" rc_lzmq_socket_sndtimeo2 = C.lzmq_socket_sndtimeo(self, value1)\n" +" rc_lzmq_socket_sndtimeo2 = Cmod.lzmq_socket_sndtimeo(self, value1)\n" " if (-1 == rc_lzmq_socket_sndtimeo2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_sndtimeo2)\n" " end\n" @@ -2824,7 +2830,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_sndtimeo1 = 0\n" -" rc_lzmq_socket_set_sndtimeo1 = C.lzmq_socket_set_sndtimeo(self, value2)\n" +" rc_lzmq_socket_set_sndtimeo1 = Cmod.lzmq_socket_set_sndtimeo(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_sndtimeo1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_sndtimeo1)\n" @@ -2841,7 +2847,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " local value1 = ipv4only_value_tmp\n" " local rc_lzmq_socket_ipv4only2 = 0\n" -" rc_lzmq_socket_ipv4only2 = C.lzmq_socket_ipv4only(self, value1)\n" +" rc_lzmq_socket_ipv4only2 = Cmod.lzmq_socket_ipv4only(self, value1)\n" " if (-1 == rc_lzmq_socket_ipv4only2) then\n" " return nil,error_code__ZMQ_Error__push(rc_lzmq_socket_ipv4only2)\n" " end\n" @@ -2856,7 +2862,7 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" " \n" " \n" " local rc_lzmq_socket_set_ipv4only1 = 0\n" -" rc_lzmq_socket_set_ipv4only1 = C.lzmq_socket_set_ipv4only(self, value2)\n" +" rc_lzmq_socket_set_ipv4only1 = Cmod.lzmq_socket_set_ipv4only(self, value2)\n" " -- check for error.\n" " if (-1 == rc_lzmq_socket_set_ipv4only1) then\n" " return nil, error_code__ZMQ_Error__push(rc_lzmq_socket_set_ipv4only1)\n" @@ -6614,8 +6620,6 @@ static const reg_sub_module reg_sub_modules[] = { #if LUAJIT_FFI static const ffi_export_symbol zmq_ffi_export[] = { -{ "zmq_sendmsg", { .func = (ffi_export_func_t)zmq_sendmsg } }, -{ "zmq_recvmsg", { .func = (ffi_export_func_t)zmq_recvmsg } }, {NULL, { .data = NULL } } }; #endif diff --git a/src/socket.nobj.lua b/src/socket.nobj.lua index 0981646..4f3e617 100644 --- a/src/socket.nobj.lua +++ b/src/socket.nobj.lua @@ -355,7 +355,7 @@ local function build_option_methods() end m[#m+1] = method (name) { if_defs = if_defs, var_out(val_out), - c_method_call "ZMQ_Error" (meth.c_get) (args), + c_export_method_call "ZMQ_Error" (meth.c_get) (args), } end -- generate setter method. @@ -366,7 +366,7 @@ local function build_option_methods() args = { ltype, "value", "size_t", "#value" } end m[#m+1] = method (name) { if_defs = if_defs, - c_method_call "ZMQ_Error" (meth.c_set) (args), + c_export_method_call "ZMQ_Error" (meth.c_set) (args), } end end @@ -383,7 +383,8 @@ end object "ZMQ_Socket" { error_on_null = "get_zmq_strerror()", - ffi_source [[ + ffi_source "ffi_pre_cdef" [[ + -- detect zmq version local VERSION_2_0 = true local VERSION_2_1 = false @@ -395,6 +396,17 @@ if zver[1] == 3 then elseif zver[1] == 2 and zver[2] == 1 then VERSION_2_1 = true end + +if VERSION_2_0 then + ffi.cdef[==[ +typedef int ZMQ_Error; +typedef struct ZMQ_Socket ZMQ_Socket; +typedef struct zmq_msg_t zmq_msg_t; + +ZMQ_Error zmq_sendmsg(ZMQ_Socket *sock, zmq_msg_t *msg, int flags) __asm__("zmq_send"); +ZMQ_Error zmq_recvmsg(ZMQ_Socket *sock, zmq_msg_t *msg, int flags) __asm__("zmq_recv"); +]==] +end ]], c_source ([[ @@ -649,7 +661,7 @@ local tmp_val_len = ffi.new('size_t[1]', 4) -- zmq_send -- method "send_msg" { - c_export_method_call "ZMQ_Error" "zmq_sendmsg" { "zmq_msg_t *", "msg", "int", "flags?" }, + c_method_call "ZMQ_Error" "zmq_sendmsg" { "zmq_msg_t *", "msg", "int", "flags?" }, }, -- create helper function for `zmq_send` c_source[[ @@ -670,14 +682,14 @@ ZMQ_Error simple_zmq_send(ZMQ_Socket *sock, const char *data, size_t data_len, i } ]], method "send" { - c_method_call "ZMQ_Error" "simple_zmq_send" + c_export_method_call "ZMQ_Error" "simple_zmq_send" { "const char *", "data", "size_t", "#data", "int", "flags?"} }, -- -- zmq_recv -- method "recv_msg" { - c_export_method_call "ZMQ_Error" "zmq_recvmsg" { "zmq_msg_t *", "msg", "int", "flags?" }, + c_method_call "ZMQ_Error" "zmq_recvmsg" { "zmq_msg_t *", "msg", "int", "flags?" }, }, ffi_source[[ local tmp_msg = ffi.new('zmq_msg_t') diff --git a/zmq.nobj.lua b/zmq.nobj.lua index 97c80b9..095d0f2 100644 --- a/zmq.nobj.lua +++ b/zmq.nobj.lua @@ -27,8 +27,14 @@ module_globals = true, -- support old code that doesn't do: local zmq = require" use_globals = false, hide_meta_info = true, luajit_ffi = true, +-- needed for functions exported from module. luajit_ffi_load_cmodule = true, +ffi_load { +"zmq", -- default lib name. +Windows = "libzmq", -- lib name for on windows. +}, + sys_include "string.h", include "zmq.h",