DLL_EXPORT int luaopen_libluazmq(lua_State *L) { /* context metatable. */ luaL_newmetatable(L, MT_ZMQ_CONTEXT); luaL_setfuncs(L, ctxmethods, 0); lua_pushvalue(L, -1); lua_setfield(L, -1, "__index"); /* socket metatable. */ luaL_newmetatable(L, MT_ZMQ_SOCKET); luaL_setfuncs(L, sockmethods, 0); lua_pushvalue(L, -1); lua_setfield(L, -1, "__index"); lua_newtable(L); luaL_setfuncs(L, zmqlib, 0); lua_pushvalue(L, -1); /* Socket types. */ set_zmq_const(PAIR); set_zmq_const(PUB); set_zmq_const(SUB); set_zmq_const(REQ); set_zmq_const(REP); set_zmq_const(XREQ); set_zmq_const(XREP); set_zmq_const(PULL); set_zmq_const(PUSH); /* Socket options. */ #ifdef ZMQ_HWM set_zmq_const(HWM); #else set_zmq_const(SNDHWM); set_zmq_const(RCVHWM); #endif #ifdef ZMQ_SWAP set_zmq_const(SWAP); #endif set_zmq_const(AFFINITY); set_zmq_const(IDENTITY); set_zmq_const(SUBSCRIBE); set_zmq_const(UNSUBSCRIBE); set_zmq_const(RATE); set_zmq_const(RECOVERY_IVL); #ifdef ZMQ_MCAST_LOOP set_zmq_const(MCAST_LOOP); #endif set_zmq_const(SNDBUF); set_zmq_const(RCVBUF); set_zmq_const(RCVMORE); #if VERSION_2_1 set_zmq_const(FD); set_zmq_const(EVENTS); set_zmq_const(TYPE); set_zmq_const(LINGER); set_zmq_const(RECONNECT_IVL); set_zmq_const(BACKLOG); /* POLL events */ set_zmq_const(POLLIN); set_zmq_const(POLLOUT); set_zmq_const(POLLERR); #endif /* Send/recv options. */ set_zmq_const(NOBLOCK); set_zmq_const(DONTWAIT); set_zmq_const(SNDMORE); Lzmq_CharInit(L); Lzmq_ByteInit(L); Lzmq_ShortInit(L); Lzmq_IntInit(L); Lzmq_LongInit(L); Lzmq_FloatInit(L); Lzmq_DoubleInit(L); return 1; }
LUALIB_API int luaopen_zmq(lua_State *L) { /* context metatable. */ luaL_newmetatable(L, MT_ZMQ_CONTEXT); lua_createtable(L, 0, sizeof(ctxmethods) / sizeof(luaL_reg) - 1); luaL_register(L, NULL, ctxmethods); lua_setfield(L, -2, "__index"); /* socket metatable. */ luaL_newmetatable(L, MT_ZMQ_SOCKET); lua_createtable(L, 0, sizeof(sockmethods) / sizeof(luaL_reg) - 1); luaL_register(L, NULL, sockmethods); lua_setfield(L, -2, "__index"); luaL_register(L, "zmq", zmqlib); /* Socket types. */ set_zmq_const(PAIR); set_zmq_const(PUB); set_zmq_const(SUB); set_zmq_const(REQ); set_zmq_const(REP); set_zmq_const(XREQ); set_zmq_const(XREP); set_zmq_const(PULL); set_zmq_const(PUSH); /* Socket options. */ set_zmq_const(HWM); set_zmq_const(SWAP); set_zmq_const(AFFINITY); set_zmq_const(IDENTITY); set_zmq_const(SUBSCRIBE); set_zmq_const(UNSUBSCRIBE); set_zmq_const(RATE); set_zmq_const(RECOVERY_IVL); set_zmq_const(MCAST_LOOP); set_zmq_const(SNDBUF); set_zmq_const(RCVBUF); set_zmq_const(RCVMORE); #if VERSION_2_1 set_zmq_const(FD); set_zmq_const(EVENTS); set_zmq_const(TYPE); set_zmq_const(LINGER); set_zmq_const(RECONNECT_IVL); set_zmq_const(BACKLOG); /* POLL events */ set_zmq_const(POLLIN); set_zmq_const(POLLOUT); set_zmq_const(POLLERR); #endif /* Send/recv options. */ set_zmq_const(NOBLOCK); set_zmq_const(SNDMORE); return 1; }