aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/net')
-rw-r--r--src/lua/modules/net/je_lua_buffer.cpp34
-rw-r--r--src/lua/modules/net/je_lua_buffer.h2
-rw-r--r--src/lua/modules/net/je_lua_net.cpp4
-rw-r--r--src/lua/modules/net/je_lua_socket.cpp36
4 files changed, 37 insertions, 39 deletions
diff --git a/src/lua/modules/net/je_lua_buffer.cpp b/src/lua/modules/net/je_lua_buffer.cpp
index 327e7ed..dcfdf01 100644
--- a/src/lua/modules/net/je_lua_buffer.cpp
+++ b/src/lua/modules/net/je_lua_buffer.cpp
@@ -3,6 +3,8 @@
#include "libjin/jin.h"
#include "je_lua_buffer.h"
+using namespace JinEngine::Lua::Net;
+
namespace JinEngine
{
namespace Lua
@@ -10,24 +12,22 @@ namespace JinEngine
const char* Jin_Lua_Buffer = "Buffer";
- typedef Shared<Net::Buffer>& SharedBuffer;
-
- static inline SharedBuffer checkNetBuffer(lua_State* L)
+ static inline Net::Buffer* checkNetBuffer(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Buffer);
- return luaObj->getShared<Net::Buffer>();
+ return luaObj->getObject<Net::Buffer>();
}
// net.Buffer:append(value) -> value_length
LUA_IMPLEMENT int l_append(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
const int vp = 2;
if (luax_isintegerstrict(L, vp))
{
int n = luax_checkinteger(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -35,7 +35,7 @@ namespace JinEngine
{
float n = luax_checknumber(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -43,7 +43,7 @@ namespace JinEngine
{
bool n = luax_checkbool(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -51,7 +51,7 @@ namespace JinEngine
{
const char* str = luax_checkstring(L, vp);
int size = strlen(str) + 1;
- shared->append(str, size);
+ buffer->append(str, size);
luax_pushinteger(L, size);
return 1;
}
@@ -65,10 +65,10 @@ namespace JinEngine
// net.Buffer:grabString(offset) -> string, length
LUA_IMPLEMENT int l_grabString(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
unsigned int len;
- char* data = shared->grabString(&len, offset);
+ char* data = buffer->grabString(&len, offset);
Array<char> str;
str.bind(data, len);
luax_pushstring(L, &str);
@@ -79,10 +79,10 @@ namespace JinEngine
// net.Buffer:grabInteger(offset) -> integer, length
LUA_IMPLEMENT int l_grabInteger(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- int integer = shared->grabInteger(&len, offset);
+ int integer = buffer->grabInteger(&len, offset);
luax_pushinteger(L, integer);
luax_pushinteger(L, len);
return 2;
@@ -90,10 +90,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_grabFloat(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- float floatv = shared->grabFloat(&len, offset);
+ float floatv = buffer->grabFloat(&len, offset);
luax_pushnumber(L, floatv);
luax_pushinteger(L, len);
return 2;
@@ -101,10 +101,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_grabBoolean(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- bool boolean = shared->grabBoolean(&len, offset);
+ bool boolean = buffer->grabBoolean(&len, offset);
luax_pushboolean(L, boolean);
luax_pushinteger(L, len);
return 2;
diff --git a/src/lua/modules/net/je_lua_buffer.h b/src/lua/modules/net/je_lua_buffer.h
index 7584f47..974e23a 100644
--- a/src/lua/modules/net/je_lua_buffer.h
+++ b/src/lua/modules/net/je_lua_buffer.h
@@ -17,7 +17,7 @@ namespace JinEngine
namespace Net
{
- class Buffer
+ class Buffer : public Object
{
public:
Buffer(size_t s = 0)
diff --git a/src/lua/modules/net/je_lua_net.cpp b/src/lua/modules/net/je_lua_net.cpp
index 5db4722..d003640 100644
--- a/src/lua/modules/net/je_lua_net.cpp
+++ b/src/lua/modules/net/je_lua_net.cpp
@@ -49,7 +49,7 @@ namespace JinEngine
}
}
Socket* socket = new Socket(info);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared<Socket>(socket, Jin_Lua_Socket));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared(socket, Jin_Lua_Socket));
return 1;
}
@@ -57,7 +57,7 @@ namespace JinEngine
{
int size = luax_checkinteger(L, 1);
Net::Buffer* buffer = new Net::Buffer(size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(buffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(buffer, Jin_Lua_Buffer));
return 1;
}
diff --git a/src/lua/modules/net/je_lua_socket.cpp b/src/lua/modules/net/je_lua_socket.cpp
index 8eb4051..af0cef0 100644
--- a/src/lua/modules/net/je_lua_socket.cpp
+++ b/src/lua/modules/net/je_lua_socket.cpp
@@ -13,61 +13,59 @@ namespace JinEngine
const char* Jin_Lua_Socket = "Socket";
- typedef Shared<Socket>& SharedSocket;
-
const int BUFFER_SIZE = 1024;
- LUA_IMPLEMENT inline SharedSocket checkSocket(lua_State* L, int pos = 1)
+ LUA_IMPLEMENT inline Socket* checkSocket(lua_State* L, int pos = 1)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, pos, Jin_Lua_Socket);
- return luaObj->getShared<Socket>();
+ return luaObj->getObject<Socket>();
}
- LUA_IMPLEMENT inline Shared<Buffer>& checkNetBuffer(lua_State* L, int pos = 1)
+ LUA_IMPLEMENT inline Buffer* checkNetBuffer(lua_State* L, int pos = 1)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, pos, Jin_Lua_Buffer);
- return luaObj->getShared<Buffer>();
+ return luaObj->getObject<Buffer>();
}
// return net.Socket
LUA_IMPLEMENT int l_accept(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
Socket* client = socket->accept();
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared<Socket>(client, Jin_Lua_Socket));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared(client, Jin_Lua_Socket));
return 1;
}
// return net.Buffer
LUA_IMPLEMENT int l_receive(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
char buffer[BUFFER_SIZE] = {0};
int size = socket->receive(buffer, BUFFER_SIZE);
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(netBuffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(netBuffer, Jin_Lua_Buffer));
return 1;
}
// Socket:receiveFrom(address, port)
LUA_IMPLEMENT int l_receiveFrom(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
int address = luax_checkinteger(L, 2);
int port = luax_checkinteger(L, 3);
char buffer[BUFFER_SIZE];
int size = socket->receiveFrom(buffer, BUFFER_SIZE, address, port);
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(netBuffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(netBuffer, Jin_Lua_Buffer));
return 1;
}
// Socket:send(net.Buffer) -> data_length
LUA_IMPLEMENT int l_send(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
- Shared<Buffer>& shared = checkNetBuffer(L, 2);
- int len = socket->send(shared->buffer, shared->size);
+ Socket* socket = checkSocket(L);
+ Buffer* buffer = checkNetBuffer(L, 2);
+ int len = socket->send(buffer->buffer, buffer->size);
luax_pushinteger(L, len);
return 1;
}
@@ -75,24 +73,24 @@ namespace JinEngine
// Socket:sendTo(address, port, net.Buffer)
LUA_IMPLEMENT int l_sendTo(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
int address = luax_checkinteger(L, 2);
int port = luax_checkinteger(L, 3);
- Shared<Buffer>& buffer = checkNetBuffer(L, 4);
+ Buffer* buffer = checkNetBuffer(L, 4);
socket->sendTo(buffer->buffer, buffer->size, address, port);
return 0;
}
LUA_IMPLEMENT int l_close(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
socket->close();
return 0;
}
LUA_IMPLEMENT int l_configBlocking(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
bool blocking = luax_checkbool(L, 2);
socket->configureBlocking(blocking);
return 0;