Files
WickedEngine/WickedEngine/wiNetwork_BindLua.cpp
T
2015-11-26 23:04:35 +01:00

117 lines
2.1 KiB
C++

#include "wiNetwork_BindLua.h"
#include "wiClient.h"
#include "wiServer.h"
#include "wiHelper.h"
const char wiClient_BindLua::className[] = "Client";
Luna<wiClient_BindLua>::FunctionType wiClient_BindLua::methods[] = {
lunamethod(wiClient_BindLua,Poll),
{ NULL, NULL }
};
Luna<wiClient_BindLua>::PropertyType wiClient_BindLua::properties[] = {
{ NULL, NULL }
};
wiClient_BindLua::wiClient_BindLua(lua_State* L)
{
string name = "CLIENT-", ipaddress = "127.0.0.1";
name += wiHelper::getCurrentDateTimeAsString();
int port = 65000;
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
name = wiLua::SGetString(L, 1);
if (argc > 1)
{
ipaddress = wiLua::SGetString(L, 2);
if (argc > 2)
{
port = wiLua::SGetInt(L, 3);
}
}
}
client = new wiClient(name, ipaddress, port);
}
wiClient_BindLua::~wiClient_BindLua()
{
SAFE_DELETE(client);
}
int wiClient_BindLua::Poll(lua_State* L)
{
int i = 0;
client->Poll(i);
return 0;
}
void wiClient_BindLua::Bind()
{
static bool initialized = false;
if (!initialized)
{
initialized = true;
Luna<wiClient_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
}
}
const char wiServer_BindLua::className[] = "Server";
Luna<wiServer_BindLua>::FunctionType wiServer_BindLua::methods[] = {
lunamethod(wiServer_BindLua,Poll),
{ NULL, NULL }
};
Luna<wiServer_BindLua>::PropertyType wiServer_BindLua::properties[] = {
{ NULL, NULL }
};
wiServer_BindLua::wiServer_BindLua(lua_State* L)
{
string name = "SERVER-", ipaddress = "0.0.0.0";
name+=wiHelper::getCurrentDateTimeAsString();
int port = 65000;
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
name = wiLua::SGetString(L, 1);
if (argc > 1)
{
ipaddress = wiLua::SGetString(L, 2);
if (argc > 2)
{
port = wiLua::SGetInt(L, 3);
}
}
}
server = new wiServer(name, ipaddress, port);
}
wiServer_BindLua::~wiServer_BindLua()
{
SAFE_DELETE(server);
}
int wiServer_BindLua::Poll(lua_State* L)
{
int i = 0;
server->Poll(i);
return 0;
}
void wiServer_BindLua::Bind()
{
static bool initialized = false;
if (!initialized)
{
initialized = true;
Luna<wiServer_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
}
}