From cee868801b55aa4302c91a46df8daf38388163e7 Mon Sep 17 00:00:00 2001 From: pixel Date: Fri, 4 Jul 2008 12:01:52 +0000 Subject: Adding project files. --- src/lua-plugin.cc | 43 +++++++++++++++++++++++++++++++++++++++++++ src/lua-plugin.h | 9 +++++++++ src/plugin-luaconfigfiles.cc | 9 +++++++++ src/plugin-luaftgl.cc | 9 +++++++++ src/plugin-luagl.cc | 10 ++++++++++ src/plugin-luahandle.cc | 12 ++++++++++++ src/plugin-luahttp.cc | 9 +++++++++ src/plugin-lualibs.cc | 9 +++++++++ src/plugin-luaocci.cc | 9 +++++++++ src/plugin-luaregex.cc | 9 +++++++++ src/plugin-luasql.cc | 9 +++++++++ src/plugin-luatask.cc | 9 +++++++++ src/plugin-luaxml.cc | 10 ++++++++++ 13 files changed, 156 insertions(+) create mode 100644 src/lua-plugin.cc create mode 100644 src/lua-plugin.h create mode 100644 src/plugin-luaconfigfiles.cc create mode 100644 src/plugin-luaftgl.cc create mode 100644 src/plugin-luagl.cc create mode 100644 src/plugin-luahandle.cc create mode 100644 src/plugin-luahttp.cc create mode 100644 src/plugin-lualibs.cc create mode 100644 src/plugin-luaocci.cc create mode 100644 src/plugin-luaregex.cc create mode 100644 src/plugin-luasql.cc create mode 100644 src/plugin-luatask.cc create mode 100644 src/plugin-luaxml.cc (limited to 'src') diff --git a/src/lua-plugin.cc b/src/lua-plugin.cc new file mode 100644 index 0000000..79968a6 --- /dev/null +++ b/src/lua-plugin.cc @@ -0,0 +1,43 @@ +#include + +typedef void(*init_ptr_t)(Lua *); + +#ifdef _WIN32 +#include + +void LuaLoadPlugin(const String & _fname, Lua * L) throw (GeneralException) { + HMODULE handle; + String fname = _fname + ".dll"; + + if (!(handle = LoadLibraryEx(fname.to_charp(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH)) && + !(handle = LoadLibraryEx(fname.to_charp(), NULL, NULL))) { + throw GeneralException("File not found or error loading shared object file: " + fname + "; Error #" + String((int) GetLastError())); + } + + init_ptr_t init_ptr = (init_ptr_t) GetProcAddress(handle, "init_plugin"); + + if (!init_ptr) { + throw GeneralException("No init pointer on plugin " + fname); + } + + init_ptr(L); +} +#else +#include + +void LuaLoadPlugin(const String & fname, Lua * L) throw (GeneralException) { + void * handle = dlopen(("./" + fname + ".so").to_charp(), RTLD_NOW | RTLD_GLOBAL); + + if (!handle) { + throw GeneralException("File not found or error loading shared object file: " + fname + "; " + dlerror()); + } + + init_ptr_t init_ptr = (init_ptr_t) dlsym(handle, "init_plugin"); + + if (!init_ptr) { + throw GeneralException("No init pointer on plugin " + fname); + } + + init_ptr(L); +} +#endif diff --git a/src/lua-plugin.h b/src/lua-plugin.h new file mode 100644 index 0000000..dba8518 --- /dev/null +++ b/src/lua-plugin.h @@ -0,0 +1,9 @@ +#ifndef __LUA_PLUGIN_H__ +#define __LUA_PLUGIN_H__ + +#include +#include + +void LuaLoadPlugin(const String & fname, Lua * L) throw (GeneralException); + +#endif diff --git a/src/plugin-luaconfigfiles.cc b/src/plugin-luaconfigfiles.cc new file mode 100644 index 0000000..a174f6a --- /dev/null +++ b/src/plugin-luaconfigfiles.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaConfigFile::pushstatics(L); +} + +} diff --git a/src/plugin-luaftgl.cc b/src/plugin-luaftgl.cc new file mode 100644 index 0000000..cd577b6 --- /dev/null +++ b/src/plugin-luaftgl.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaFTFont::pushstatics(L); +} + +} diff --git a/src/plugin-luagl.cc b/src/plugin-luagl.cc new file mode 100644 index 0000000..2f0b55c --- /dev/null +++ b/src/plugin-luagl.cc @@ -0,0 +1,10 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + luaopen_opengl(L); + L->pop(); +} + +} diff --git a/src/plugin-luahandle.cc b/src/plugin-luahandle.cc new file mode 100644 index 0000000..d2002af --- /dev/null +++ b/src/plugin-luahandle.cc @@ -0,0 +1,12 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaInput::pushconstruct(L); + LuaOutput::pushconstruct(L); + LuaBuffer::pushconstruct(L); + LuaHandle::pushconstruct(L); +} + +} diff --git a/src/plugin-luahttp.cc b/src/plugin-luahttp.cc new file mode 100644 index 0000000..819a2f3 --- /dev/null +++ b/src/plugin-luahttp.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaHttpResponse::pushstatics(L); +} + +} diff --git a/src/plugin-lualibs.cc b/src/plugin-lualibs.cc new file mode 100644 index 0000000..e364d9b --- /dev/null +++ b/src/plugin-lualibs.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LoadLuaLibs(L); +} + +} diff --git a/src/plugin-luaocci.cc b/src/plugin-luaocci.cc new file mode 100644 index 0000000..8d9377e --- /dev/null +++ b/src/plugin-luaocci.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaOCCI_pushstatics(L); +} + +} diff --git a/src/plugin-luaregex.cc b/src/plugin-luaregex.cc new file mode 100644 index 0000000..694738c --- /dev/null +++ b/src/plugin-luaregex.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaRegex::pushstatics(L); +} + +} diff --git a/src/plugin-luasql.cc b/src/plugin-luasql.cc new file mode 100644 index 0000000..c891942 --- /dev/null +++ b/src/plugin-luasql.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaSQLConnection::pushstatics(L); +} + +} diff --git a/src/plugin-luatask.cc b/src/plugin-luatask.cc new file mode 100644 index 0000000..b97e273 --- /dev/null +++ b/src/plugin-luatask.cc @@ -0,0 +1,9 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + LuaTaskMan::pushstatics(L); +} + +} diff --git a/src/plugin-luaxml.cc b/src/plugin-luaxml.cc new file mode 100644 index 0000000..2cec871 --- /dev/null +++ b/src/plugin-luaxml.cc @@ -0,0 +1,10 @@ +#include + +extern "C" { + +void init_plugin(Lua * L) { + luaopen_xml(L); + L->pop(); +} + +} -- cgit v1.2.3