Switch to new module organization scheme
authorMyhailo Danylenko <isbear@ukrpost.net>
Fri, 27 Mar 2009 09:43:41 +0200
changeset 16 09b375e9ce32
parent 15 1a5dd51722f5
child 17 ab4470465a0c
Switch to new module organization scheme
lm.c
lm.lua
lm_connection.c
lm_message.c
lm_message_handler.c
lm_message_node.c
lm_proxy.c
lm_ssl.c
--- a/lm.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm.c	Fri Mar 27 09:43:41 2009 +0200
@@ -1,6 +1,7 @@
 
 #include <lua.h>
 
+#include "config.h"
 #include "lm_types.h"
 #include "lm_message_node.h"
 #include "lm_message.h"
@@ -20,26 +21,35 @@
 
 int luaopen_loudmouth (lua_State *L)
 {
-	lua_pushstring (L, LLM_OBJREGISTRY); // 1 registry key
+	lua_pushconststring (L, LLM_OBJREGISTRY); // 1 registry key
 	lua_newtable (L);                    // 2 registry value (table)
 	lua_createtable (L, 0, 1);           // 3 metatable
-	lua_pushstring (L, "__mode");        // 4 metatable key
-	lua_pushstring (L, "v");             // 5 metatable value
+	lua_pushconststring (L, "__mode");        // 4 metatable key
+	lua_pushconststring (L, "v");             // 5 metatable value
 	lua_settable (L, -3);                // 3 metatable
 	lua_setmetatable (L, -2);            // 2 registry value
 	lua_rawset (L, LUA_REGISTRYINDEX);   // 0
 	
 	lua_createtable (L, 6, 0);
-	lua_pushvalue (L, -1);
-	lua_setglobal (L, "lm");
 
+	lua_pushconststring (L, "message_node");
 	luaopen_lm_message_node (L);
+	lua_settable (L, -3);
+	lua_pushconststring (L, "message");
 	luaopen_lm_message (L);
+	lua_settable (L, -3);
+	lua_pushconststring (L, "message_handler");
 	luaopen_lm_message_handler (L);
+	lua_settable (L, -3);
+	lua_pushconststring (L, "proxy");
 	luaopen_lm_proxy (L);
+	lua_settable (L, -3);
+	lua_pushconststring (L, "ssl");
 	luaopen_lm_ssl (L);
+	lua_settable (L, -3);
+	lua_pushconststring (L, "connection");
 	luaopen_lm_connection (L);
-	lua_pop (L, 6);
+	lua_settable (L, -3);
 
 	return 1;
 }
--- a/lm.lua	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm.lua	Fri Mar 27 09:43:41 2009 +0200
@@ -1,5 +1,5 @@
 
-require 'loudmouth'
+local lm = require 'loudmouth'
 
 -- argument is a table with keys,
 -- corresponding to method names.
@@ -294,4 +294,6 @@
 	return c
 end
 
+return lm
+
 -- vim: se ts=4: --
--- a/lm_connection.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_connection.c	Fri Mar 27 09:43:41 2009 +0200
@@ -561,7 +561,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_connection);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.connection", reg_f_lm_connection);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_connection);
 	return 1;
 }
 
--- a/lm_message.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_message.c	Fri Mar 27 09:43:41 2009 +0200
@@ -178,7 +178,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_message);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.message", reg_f_lm_message);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_message);
 	return 1;
 }
 
--- a/lm_message_handler.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_message_handler.c	Fri Mar 27 09:43:41 2009 +0200
@@ -132,7 +132,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_handler);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.message_handler", reg_f_lm_handler);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_handler);
 	return 1;
 }
 
--- a/lm_message_node.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_message_node.c	Fri Mar 27 09:43:41 2009 +0200
@@ -267,7 +267,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_node);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.message_node", reg_f_lm_node);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_node);
 	return 1;
 }
 
--- a/lm_proxy.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_proxy.c	Fri Mar 27 09:43:41 2009 +0200
@@ -170,7 +170,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_proxy);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.proxy", reg_f_lm_proxy);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_proxy);
 	return 1;
 }
 
--- a/lm_ssl.c	Fri Mar 27 09:43:25 2009 +0200
+++ b/lm_ssl.c	Fri Mar 27 09:43:41 2009 +0200
@@ -191,7 +191,8 @@
 	lua_settable (L, -3);
 	luaL_register (L, NULL, reg_m_lm_ssl);
 	lua_pop (L, 1);
-	luaL_register (L, "lm.ssl", reg_f_lm_ssl);
+	lua_newtable (L); // XXX we can specify here exact amount of fields
+	luaL_register (L, NULL, reg_f_lm_ssl);
 	return 1;
 }