aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules')
-rw-r--r--src/lua/modules/ai/je_lua_state_machine.cpp23
-rw-r--r--src/lua/modules/ai/je_lua_statemachine.cpp11
-rw-r--r--src/lua/modules/audio/je_lua_audio.cpp2
-rw-r--r--src/lua/modules/audio/je_lua_source.cpp4
-rw-r--r--src/lua/modules/graphics/je_lua_bitmap.cpp6
-rw-r--r--src/lua/modules/graphics/je_lua_canvas.cpp4
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.cpp60
-rw-r--r--src/lua/modules/graphics/je_lua_page.cpp6
-rw-r--r--src/lua/modules/graphics/je_lua_shader.cpp8
-rw-r--r--src/lua/modules/graphics/je_lua_texture.cpp4
-rw-r--r--src/lua/modules/graphics/je_lua_texture_font.cpp4
-rw-r--r--src/lua/modules/graphics/je_lua_ttf.cpp8
-rw-r--r--src/lua/modules/graphics/je_lua_ttf_data.cpp6
-rw-r--r--src/lua/modules/net/je_lua_buffer.cpp4
-rw-r--r--src/lua/modules/net/je_lua_net.cpp4
-rw-r--r--src/lua/modules/net/je_lua_socket.cpp18
-rw-r--r--src/lua/modules/thread/je_lua_thread.cpp16
-rw-r--r--src/lua/modules/time/je_lua_timer.cpp30
-rw-r--r--src/lua/modules/time/je_lua_timer.h19
-rw-r--r--src/lua/modules/types.h3
20 files changed, 146 insertions, 94 deletions
diff --git a/src/lua/modules/ai/je_lua_state_machine.cpp b/src/lua/modules/ai/je_lua_state_machine.cpp
new file mode 100644
index 0000000..9b95f43
--- /dev/null
+++ b/src/lua/modules/ai/je_lua_state_machine.cpp
@@ -0,0 +1,23 @@
+#include "lua/common/je_lua_common.h"
+#include "libjin/jin.h"
+
+using namespace JinEngine::AI;
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+ LUA_IMPLEMENT int l_addEnterCallback(lua_State* L)
+ {
+ StateMachine* sm;
+ sm->addEnterListener("", [](void* p) -> void{
+
+
+ });
+
+ return 0;
+ }
+
+ }
+} \ No newline at end of file
diff --git a/src/lua/modules/ai/je_lua_statemachine.cpp b/src/lua/modules/ai/je_lua_statemachine.cpp
deleted file mode 100644
index f79d79a..0000000
--- a/src/lua/modules/ai/je_lua_statemachine.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "libjin/jin.h"
-
-namespace JinEngine
-{
- namespace Lua
- {
-
-
-
- }
-} \ No newline at end of file
diff --git a/src/lua/modules/audio/je_lua_audio.cpp b/src/lua/modules/audio/je_lua_audio.cpp
index 698d88a..88c0561 100644
--- a/src/lua/modules/audio/je_lua_audio.cpp
+++ b/src/lua/modules/audio/je_lua_audio.cpp
@@ -98,7 +98,7 @@ namespace JinEngine
return 1;
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_AUDIO_SOURCE, sizeof(Proxy));
- proxy->bind(new Ref<Source>(src, JIN_AUDIO_SOURCE));
+ proxy->bind(new Shared<Source>(src, JIN_AUDIO_SOURCE));
return 1;
}
diff --git a/src/lua/modules/audio/je_lua_source.cpp b/src/lua/modules/audio/je_lua_source.cpp
index d75d942..04f0528 100644
--- a/src/lua/modules/audio/je_lua_source.cpp
+++ b/src/lua/modules/audio/je_lua_source.cpp
@@ -10,12 +10,12 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Source>& SourceRef;
+ typedef Shared<Source>& SourceRef;
LUA_IMPLEMENT inline SourceRef checkSource(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_AUDIO_SOURCE);
- return proxy->getRef<Source>();
+ return proxy->getShared<Source>();
}
LUA_IMPLEMENT int l_play(lua_State* L)
diff --git a/src/lua/modules/graphics/je_lua_bitmap.cpp b/src/lua/modules/graphics/je_lua_bitmap.cpp
index a8d5bc0..8d4897b 100644
--- a/src/lua/modules/graphics/je_lua_bitmap.cpp
+++ b/src/lua/modules/graphics/je_lua_bitmap.cpp
@@ -10,12 +10,12 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Bitmap>& BitmapRef;
+ typedef Shared<Bitmap>& BitmapRef;
LUA_IMPLEMENT inline BitmapRef checkBitmap(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP);
- return proxy->getRef<Bitmap>();
+ return proxy->getShared<Bitmap>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -88,7 +88,7 @@ namespace JinEngine
Bitmap* bitmap = ref.getObject();
Bitmap* b = Bitmap::clone(bitmap);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_BITMAP, sizeof(Proxy));
- proxy->bind(new Ref<Bitmap>(b, JIN_GRAPHICS_BITMAP));
+ proxy->bind(new Shared<Bitmap>(b, JIN_GRAPHICS_BITMAP));
return 1;
}
diff --git a/src/lua/modules/graphics/je_lua_canvas.cpp b/src/lua/modules/graphics/je_lua_canvas.cpp
index f6834b1..87516b3 100644
--- a/src/lua/modules/graphics/je_lua_canvas.cpp
+++ b/src/lua/modules/graphics/je_lua_canvas.cpp
@@ -10,12 +10,12 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Canvas>& CanvasRef;
+ typedef Shared<Canvas>& CanvasRef;
LUA_IMPLEMENT inline CanvasRef checkCanvas(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS);
- return proxy->getRef<Canvas>();
+ return proxy->getShared<Canvas>();
}
LUA_IMPLEMENT int l_getWidth(lua_State* L)
diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp
index 3befdde..639a542 100644
--- a/src/lua/modules/graphics/je_lua_graphics.cpp
+++ b/src/lua/modules/graphics/je_lua_graphics.cpp
@@ -165,7 +165,7 @@ namespace JinEngine
}
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_BITMAP, sizeof(Proxy));
- proxy->bind(new Ref<Bitmap>(bitmap, JIN_GRAPHICS_BITMAP));
+ proxy->bind(new Shared<Bitmap>(bitmap, JIN_GRAPHICS_BITMAP));
return 1;
}
@@ -176,7 +176,7 @@ namespace JinEngine
if (luax_istype(L, 1, JIN_GRAPHICS_BITMAP))
{
Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP);
- Ref<Bitmap>& refBitmap = p->getRef<Bitmap>();
+ Shared<Bitmap>& refBitmap = p->getShared<Bitmap>();
Bitmap* bitmap = refBitmap.getObject();
texture = Texture::createTexture(bitmap);
}
@@ -186,7 +186,7 @@ namespace JinEngine
texture = Texture::createTexture(path);
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXTURE, sizeof(Proxy));
- proxy->bind(new Ref<Texture>(texture, JIN_GRAPHICS_TEXTURE));
+ proxy->bind(new Shared<Texture>(texture, JIN_GRAPHICS_TEXTURE));
return 1;
}
@@ -201,7 +201,7 @@ namespace JinEngine
return 1;
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_SHADER, sizeof(Proxy));
- proxy->bind(new Ref<Shader>(jsl, JIN_GRAPHICS_SHADER));
+ proxy->bind(new Shared<Shader>(jsl, JIN_GRAPHICS_SHADER));
return 1;
}
@@ -225,7 +225,7 @@ namespace JinEngine
return 1;
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_SHADER, sizeof(Proxy));
- proxy->bind(new Ref<Shader>(jsl, JIN_GRAPHICS_SHADER));
+ proxy->bind(new Shared<Shader>(jsl, JIN_GRAPHICS_SHADER));
return 1;
}
@@ -235,7 +235,7 @@ namespace JinEngine
int h = luax_checknumber(L, 2);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_CANVAS, sizeof(Proxy));
Canvas* cvs = Canvas::createCanvas(w, h);
- proxy->bind(new Ref<Canvas>(cvs, JIN_GRAPHICS_CANVAS));
+ proxy->bind(new Shared<Canvas>(cvs, JIN_GRAPHICS_CANVAS));
return 1;
}
@@ -283,7 +283,7 @@ namespace JinEngine
float ox = luax_optnumber(L, 7, 0);
float oy = luax_optnumber(L, 8, 0);
Proxy* proxy = (Proxy*)luax_toudata(L, 1);
- Ref<Texture>& tex = proxy->getRef<Texture>();
+ Shared<Texture>& tex = proxy->getShared<Texture>();
tex->render(x, y, sx, sy, r, ox, oy);
}
@@ -299,7 +299,7 @@ namespace JinEngine
float ox = luax_optnumber(L, 7, 0);
float oy = luax_optnumber(L, 8, 0);
Proxy* proxy = (Proxy*)luax_toudata(L, 1);
- Ref<Canvas>& p = proxy->getRef<Canvas>();
+ Shared<Canvas>& p = proxy->getShared<Canvas>();
p->render(x, y, sx, sy, r, ox, oy);
}
@@ -389,13 +389,13 @@ namespace JinEngine
if (luax_istype(L, 1, JIN_GRAPHICS_TEXTURE))
{
Proxy* proxy = (Proxy*)luax_toudata(L, 1);
- Ref<Texture>& tex = proxy->getRef<Texture>();
+ Shared<Texture>& tex = proxy->getShared<Texture>();
tex->render(q, x, y, sx, sy, r, ox, oy);
}
else if (luax_istype(L, 1, JIN_GRAPHICS_CANVAS))
{
Proxy* proxy = (Proxy*)luax_toudata(L, 1);
- Ref<Canvas>& p = proxy->getRef<Canvas>();
+ Shared<Canvas>& p = proxy->getShared<Canvas>();
p->render(q, x, y, sx, sy, r, ox, oy);
}
else
@@ -462,7 +462,7 @@ namespace JinEngine
return 0;
}
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS);
- Ref<Canvas>& ref = proxy->getRef<Canvas>();
+ Shared<Canvas>& ref = proxy->getShared<Canvas>();
Canvas::bind(ref.getObject());
return 0;
}
@@ -483,7 +483,7 @@ namespace JinEngine
if (luax_istype(L, 1, JIN_GRAPHICS_SHADER))
{
Proxy* proxy = (Proxy*)luax_toudata(L, 1);
- Ref<Shader>& jsl = proxy->getRef<Shader>();
+ Shared<Shader>& jsl = proxy->getShared<Shader>();
jsl->use();
}
else
@@ -496,18 +496,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_setBlend(lua_State* L)
{
- return 0;
+ return 0;
}
- LUA_IMPLEMENT RenderMode strtomode(const char* str)
- {
- std::string s = std::string(str);
- if (s == "fill")
- return RenderMode::FILL;
- else if (s == "line")
- return RenderMode::LINE;
- else return RenderMode::NONE;
- }
+#define IntToRenderMode(I) static_cast<RenderMode>(I)
LUA_IMPLEMENT int l_point(lua_State* L)
{
@@ -531,8 +523,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_rect(lua_State* L)
{
- const char* modestr = luax_checkstring(L, 1);
- RenderMode mode = strtomode(modestr);
+ RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1));
if (mode != RenderMode::NONE)
{
int x = luax_checknumber(L, 2);
@@ -552,8 +543,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_circle(lua_State* L)
{
- const char* modestr = luax_checkstring(L, 1);
- RenderMode mode = strtomode(modestr);
+ RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1));
if (mode != RenderMode::NONE)
{
int x = luax_checknumber(L, 2);
@@ -572,8 +562,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_triangle(lua_State* L)
{
- const char* modestr = luax_checkstring(L, 1);
- RenderMode mode = strtomode(modestr);
+ RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1));
if (mode != RenderMode::NONE)
{
int x = luax_checknumber(L, 2);
@@ -598,9 +587,8 @@ namespace JinEngine
LUA_IMPLEMENT int l_polygon(lua_State* L)
{
- const char* modestr = luax_checkstring(L, 1);
- int n = luax_checknumber(L, 2);
- RenderMode mode = strtomode(modestr);
+ RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1));
+ int n = luax_checknumber(L, 2);
if (mode != RenderMode::NONE)
{
if (!luax_istable(L, 3))
@@ -648,7 +636,7 @@ namespace JinEngine
fs->read(path, b);
fd = TTFData::createTTFData(&b, b.size());
}
- proxy->bind(new Ref<TTFData>(fd, JIN_GRAPHICS_TTFDATA));
+ proxy->bind(new Shared<TTFData>(fd, JIN_GRAPHICS_TTFDATA));
return 1;
}
@@ -672,7 +660,7 @@ namespace JinEngine
const char* data = luax_checklstring(L, 1, &length);
Text* text = new Text(encode, data, length);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXT, sizeof(Proxy));
- proxy->bind(new Ref<Text>(text, JIN_GRAPHICS_TEXT));
+ proxy->bind(new Shared<Text>(text, JIN_GRAPHICS_TEXT));
return 1;
}
@@ -724,7 +712,7 @@ namespace JinEngine
delete text;
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXTUREFONT, sizeof(Proxy));
- proxy->bind(new Ref<TextureFont>(textureFont, JIN_GRAPHICS_TEXTUREFONT));
+ proxy->bind(new Shared<TextureFont>(textureFont, JIN_GRAPHICS_TEXTUREFONT));
return 1;
}
@@ -810,7 +798,7 @@ namespace JinEngine
LUA_EXPORT int luaopen_graphics(lua_State* L)
{
- // register types
+ // Register types.
luaopen_Bitmap(L);
luaopen_Texture(L);
luaopen_Canvas(L);
@@ -821,7 +809,7 @@ namespace JinEngine
luaopen_Page(L);
luaopen_JSL(L);
- // load whole lib
+ // Load whole lib.
luax_newlib(L, f);
return 1;
diff --git a/src/lua/modules/graphics/je_lua_page.cpp b/src/lua/modules/graphics/je_lua_page.cpp
index 36754a0..f3c2517 100644
--- a/src/lua/modules/graphics/je_lua_page.cpp
+++ b/src/lua/modules/graphics/je_lua_page.cpp
@@ -14,7 +14,7 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Font>& FontRef;
+ typedef Shared<Font>& FontRef;
Page* getPage(lua_State* L)
{
@@ -27,8 +27,8 @@ namespace JinEngine
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_PAGE);
{
/* release font */
- Ref<Page>* page = &proxy->getRef<Page>();
- RefBase* font = (RefBase*)page->getUserdata();
+ Shared<Page>* page = &proxy->getShared<Page>();
+ SharedBase* font = (SharedBase*)page->getUserdata();
font->release();
}
proxy->release();
diff --git a/src/lua/modules/graphics/je_lua_shader.cpp b/src/lua/modules/graphics/je_lua_shader.cpp
index 9131815..e2e1413 100644
--- a/src/lua/modules/graphics/je_lua_shader.cpp
+++ b/src/lua/modules/graphics/je_lua_shader.cpp
@@ -11,12 +11,12 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Shader>& ShaderRef;
+ typedef Shared<Shader>& ShaderRef;
static inline ShaderRef checkShader(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SHADER);
- return proxy->getRef<Shader>();
+ return proxy->getShared<Shader>();
}
/**
@@ -36,7 +36,7 @@ namespace JinEngine
ShaderRef ref = checkShader(L);
const char* variable = luax_checkstring(L, 2);
Proxy* proxy = (Proxy*)luax_checktype(L, 3, JIN_GRAPHICS_TEXTURE);
- Ref<Texture>& tex = proxy->getRef<Texture>();
+ Shared<Texture>& tex = proxy->getShared<Texture>();
ref->sendTexture(variable, tex.getObject());
return 0;
}
@@ -46,7 +46,7 @@ namespace JinEngine
ShaderRef ref = checkShader(L);
const char* variable = luax_checkstring(L, 2);
Proxy* proxy = (Proxy*)luax_checktype(L, 3, JIN_GRAPHICS_CANVAS);
- Ref<Canvas>& canvas = proxy->getRef<Canvas>();
+ Shared<Canvas>& canvas = proxy->getShared<Canvas>();
ref->sendCanvas(variable, canvas.getObject());
return 0;
}
diff --git a/src/lua/modules/graphics/je_lua_texture.cpp b/src/lua/modules/graphics/je_lua_texture.cpp
index 0ab79b5..a643dae 100644
--- a/src/lua/modules/graphics/je_lua_texture.cpp
+++ b/src/lua/modules/graphics/je_lua_texture.cpp
@@ -10,12 +10,12 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Texture>& TextureRef;
+ typedef Shared<Texture>& TextureRef;
LUA_IMPLEMENT inline TextureRef checkTexture(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTURE);
- return proxy->getRef<Texture>();
+ return proxy->getShared<Texture>();
}
LUA_IMPLEMENT int l_getWidth(lua_State* L)
diff --git a/src/lua/modules/graphics/je_lua_texture_font.cpp b/src/lua/modules/graphics/je_lua_texture_font.cpp
index ba0a504..58011a7 100644
--- a/src/lua/modules/graphics/je_lua_texture_font.cpp
+++ b/src/lua/modules/graphics/je_lua_texture_font.cpp
@@ -40,10 +40,10 @@ namespace JinEngine
page = tf->typeset(*text, lineheight, spacing);
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_PAGE, sizeof(Proxy));
- Ref<Page>* refPage = new Ref<Page>(page, JIN_GRAPHICS_PAGE);
+ Shared<Page>* refPage = new Shared<Page>(page, JIN_GRAPHICS_PAGE);
{
/* retain related ttf */
- Ref<TextureFont>& refTF = p->getRef<TextureFont>();
+ Shared<TextureFont>& refTF = p->getShared<TextureFont>();
refTF.retain();
refPage->setUserdata(&refTF);
}
diff --git a/src/lua/modules/graphics/je_lua_ttf.cpp b/src/lua/modules/graphics/je_lua_ttf.cpp
index 49f13c0..4c56ae1 100644
--- a/src/lua/modules/graphics/je_lua_ttf.cpp
+++ b/src/lua/modules/graphics/je_lua_ttf.cpp
@@ -16,8 +16,8 @@ namespace JinEngine
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF);
{
/* release ttf data */
- Ref<TTF>* ttf = &proxy->getRef<TTF>();
- RefBase* data = (RefBase*)ttf->getUserdata();
+ Shared<TTF>* ttf = &proxy->getShared<TTF>();
+ SharedBase* data = (SharedBase*)ttf->getUserdata();
data->release();
}
proxy->release();
@@ -46,10 +46,10 @@ namespace JinEngine
page = ttf->typeset(*text, lineheight, spacing);
}
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_PAGE, sizeof(Proxy));
- Ref<Page>* refPage = new Ref<Page>(page, JIN_GRAPHICS_PAGE);
+ Shared<Page>* refPage = new Shared<Page>(page, JIN_GRAPHICS_PAGE);
{
/* retain related ttf */
- Ref<TTF>& refTTF = p->getRef<TTF>();
+ Shared<TTF>& refTTF = p->getShared<TTF>();
refTTF.retain();
refPage->setUserdata(&refTTF);
}
diff --git a/src/lua/modules/graphics/je_lua_ttf_data.cpp b/src/lua/modules/graphics/je_lua_ttf_data.cpp
index 4212778..d076ab8 100644
--- a/src/lua/modules/graphics/je_lua_ttf_data.cpp
+++ b/src/lua/modules/graphics/je_lua_ttf_data.cpp
@@ -15,13 +15,13 @@ namespace JinEngine
{
Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTFDATA);
int fontsize = luax_checkinteger(L, 2);
- Ref<TTFData>& refFontData = p->getRef<TTFData>();
+ Shared<TTFData>& refFontData = p->getShared<TTFData>();
TTFData* fontData = refFontData.getObject();
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TTF, sizeof(Proxy));
TTF* font = fontData->createTTF(fontsize);
- Ref<TTF>* refTTF = new Ref<TTF>(font, JIN_GRAPHICS_TTF);
+ Shared<TTF>* refTTF = new Shared<TTF>(font, JIN_GRAPHICS_TTF);
{
- Ref<TTFData>& refTTFData = p->getRef<TTFData>();
+ Shared<TTFData>& refTTFData = p->getShared<TTFData>();
refTTFData.retain();
refTTF->setUserdata(&refTTFData);
}
diff --git a/src/lua/modules/net/je_lua_buffer.cpp b/src/lua/modules/net/je_lua_buffer.cpp
index 9e769e8..4c6880a 100644
--- a/src/lua/modules/net/je_lua_buffer.cpp
+++ b/src/lua/modules/net/je_lua_buffer.cpp
@@ -11,12 +11,12 @@ namespace JinEngine
namespace Net
{
- typedef Ref<Buffer>& BufferRef;
+ typedef Shared<Buffer>& BufferRef;
static inline BufferRef checkNetBuffer(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_NETWORK_BUFFER);
- return proxy->getRef<Buffer>();
+ return proxy->getShared<Buffer>();
}
// net.Buffer:append(value) -> value_length
diff --git a/src/lua/modules/net/je_lua_net.cpp b/src/lua/modules/net/je_lua_net.cpp
index de5d506..cd454d5 100644
--- a/src/lua/modules/net/je_lua_net.cpp
+++ b/src/lua/modules/net/je_lua_net.cpp
@@ -49,7 +49,7 @@ namespace Lua
}
Socket* socket = new Socket(info);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_SOCKET, sizeof(Proxy));
- proxy->bind(new Ref<Socket>(socket, JIN_NETWORK_SOCKET));
+ proxy->bind(new Shared<Socket>(socket, JIN_NETWORK_SOCKET));
return 1;
}
@@ -58,7 +58,7 @@ namespace Lua
int size = luax_checkinteger(L, 1);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_BUFFER, sizeof(Proxy));
Net::Buffer* buffer = new Net::Buffer(size);
- proxy->bind(new Ref<Buffer>(buffer, JIN_NETWORK_BUFFER));
+ proxy->bind(new Shared<Buffer>(buffer, JIN_NETWORK_BUFFER));
return 1;
}
diff --git a/src/lua/modules/net/je_lua_socket.cpp b/src/lua/modules/net/je_lua_socket.cpp
index d68cb51..0b59199 100644
--- a/src/lua/modules/net/je_lua_socket.cpp
+++ b/src/lua/modules/net/je_lua_socket.cpp
@@ -12,20 +12,20 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Socket>& SocketRef;
+ typedef Shared<Socket>& SocketRef;
const int BUFFER_SIZE = 1024;
LUA_IMPLEMENT inline SocketRef checkSocket(lua_State* L, int pos = 1)
{
Proxy* proxy = (Proxy*)luax_checktype(L, pos, JIN_NETWORK_SOCKET);
- return proxy->getRef<Socket>();
+ return proxy->getShared<Socket>();
}
- LUA_IMPLEMENT inline Ref<Buffer>& checkNetBuffer(lua_State* L, int pos = 1)
+ LUA_IMPLEMENT inline Shared<Buffer>& checkNetBuffer(lua_State* L, int pos = 1)
{
Proxy* proxy = (Proxy*)luax_checktype(L, pos, JIN_NETWORK_BUFFER);
- return proxy->getRef<Buffer>();
+ return proxy->getShared<Buffer>();
}
// return net.Socket
@@ -34,7 +34,7 @@ namespace JinEngine
SocketRef socket = checkSocket(L);
Socket* client = socket->accept();
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_SOCKET, sizeof(Proxy));
- proxy->bind(new Ref<Socket>(client, JIN_NETWORK_SOCKET));
+ proxy->bind(new Shared<Socket>(client, JIN_NETWORK_SOCKET));
return 1;
}
@@ -46,7 +46,7 @@ namespace JinEngine
int size = socket->receive(buffer, BUFFER_SIZE);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_BUFFER, sizeof(Proxy));
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
- proxy->bind(new Ref<Buffer>(netBuffer, JIN_NETWORK_BUFFER));
+ proxy->bind(new Shared<Buffer>(netBuffer, JIN_NETWORK_BUFFER));
return 1;
}
@@ -60,7 +60,7 @@ namespace JinEngine
int size = socket->receiveFrom(buffer, BUFFER_SIZE, address, port);
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_BUFFER, sizeof(Proxy));
- proxy->bind(new Ref<Buffer>(netBuffer, JIN_NETWORK_BUFFER));
+ proxy->bind(new Shared<Buffer>(netBuffer, JIN_NETWORK_BUFFER));
return 1;
}
@@ -68,7 +68,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_send(lua_State* L)
{
SocketRef socket = checkSocket(L);
- Ref<Buffer>& ref = checkNetBuffer(L, 2);
+ Shared<Buffer>& ref = checkNetBuffer(L, 2);
int len = socket->send(ref->buffer, ref->size);
luax_pushinteger(L, len);
return 1;
@@ -80,7 +80,7 @@ namespace JinEngine
SocketRef socket = checkSocket(L);
int address = luax_checkinteger(L, 2);
int port = luax_checkinteger(L, 3);
- Ref<Buffer>& buffer = checkNetBuffer(L, 4);
+ Shared<Buffer>& buffer = checkNetBuffer(L, 4);
socket->sendTo(buffer->buffer, buffer->size, address, port);
return 0;
}
diff --git a/src/lua/modules/thread/je_lua_thread.cpp b/src/lua/modules/thread/je_lua_thread.cpp
index 5babc13..ab03561 100644
--- a/src/lua/modules/thread/je_lua_thread.cpp
+++ b/src/lua/modules/thread/je_lua_thread.cpp
@@ -10,19 +10,19 @@ namespace JinEngine
namespace Lua
{
- typedef Ref<Thread>& ThreadRef;
+ typedef Shared<Thread>& ThreadRef;
int luaopen_thread(lua_State* L);
static inline ThreadRef checkThread(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_THREAD_THREAD);
- return proxy->getRef<Thread>();
+ return proxy->getShared<Thread>();
}
LUA_IMPLEMENT int threadRunner(void* t)
{
- ThreadRef ref = *(Ref<Thread>*)t;
+ ThreadRef ref = *(Shared<Thread>*)t;
lua_State* L = lua_open();
luax_openlibs(L);
luaopen_jin(L);
@@ -126,8 +126,8 @@ namespace JinEngine
case Thread::Variant::POINTER:
Proxy* p = (Proxy*)v.pointer;
Proxy* proxy = (Proxy*)luax_newinstance(L, p->getObjectType(), sizeof(Proxy));
- p->reference->retain();
- proxy->bind(p->reference);
+ p->shared->retain();
+ proxy->bind(p->shared);
break;
}
@@ -161,8 +161,8 @@ namespace JinEngine
Proxy* p = (Proxy*)v.pointer;
const char* objType = p->getObjectType();
Proxy* proxy = (Proxy*)luax_newinstance(L, objType, sizeof(Proxy));
- p->reference->retain();
- proxy->bind(p->reference);
+ p->retain();
+ proxy->bind(p->shared);
break;
}
@@ -220,7 +220,7 @@ namespace JinEngine
const char* code = luax_checkstring(L, 2);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_THREAD_THREAD, sizeof(Proxy));
Thread* thread = new Thread(name, code, threadRunner);
- proxy->bind(new Ref<Thread>(thread, JIN_THREAD_THREAD));
+ proxy->bind(new Shared<Thread>(thread, JIN_THREAD_THREAD));
return 1;
}
diff --git a/src/lua/modules/time/je_lua_timer.cpp b/src/lua/modules/time/je_lua_timer.cpp
new file mode 100644
index 0000000..c28aafe
--- /dev/null
+++ b/src/lua/modules/time/je_lua_timer.cpp
@@ -0,0 +1,30 @@
+#include "../types.h"
+#include "lua/common/je_lua_common.h"
+#include "je_lua_timer.h"
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+ typedef Shared<Timer>& TimerRef;
+
+ LUA_IMPLEMENT inline TimerRef checkTimer(lua_State* L)
+ {
+ Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_TIME_TIMER);
+ return proxy->getShared<Timer>();
+ }
+
+ LUA_IMPLEMENT int l_every(lua_State* L)
+ {
+ //TimerRef ref = checkTimer(L);
+ //Timer* timer = ref.getObject();
+ //int n = luax_checkinteger(L, 1);
+ //int ref = luax_ref(L, 2);
+ //timer->every(n, [](void* data)->void {
+ //
+ //}, );
+ }
+
+ }
+} \ No newline at end of file
diff --git a/src/lua/modules/time/je_lua_timer.h b/src/lua/modules/time/je_lua_timer.h
new file mode 100644
index 0000000..9beadf5
--- /dev/null
+++ b/src/lua/modules/time/je_lua_timer.h
@@ -0,0 +1,19 @@
+#ifndef __JE_LUA_TIMER_H__
+#define __JE_LUA_TIMER_H__
+
+#include "libjin/jin.h"
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+ class Timer : public JinEngine::Time::Timer
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/src/lua/modules/types.h b/src/lua/modules/types.h
index 123604e..c6600dc 100644
--- a/src/lua/modules/types.h
+++ b/src/lua/modules/types.h
@@ -22,4 +22,7 @@
#define JIN_NETWORK_SOCKET "Socket"
#define JIN_NETWORK_BUFFER "Buffer"
+// time module
+#define JIN_TIME_TIMER "Timer"
+
#endif \ No newline at end of file