summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/io/binding
diff options
context:
space:
mode:
Diffstat (limited to 'source/libs/asura-lib-utils/io/binding')
-rw-r--r--source/libs/asura-lib-utils/io/binding/_compressor.cpp0
-rw-r--r--source/libs/asura-lib-utils/io/binding/_data_buffer.cpp123
-rw-r--r--source/libs/asura-lib-utils/io/binding/_file.cpp223
-rw-r--r--source/libs/asura-lib-utils/io/binding/_file_data.cpp60
-rw-r--r--source/libs/asura-lib-utils/io/binding/_file_system.cpp265
-rw-r--r--source/libs/asura-lib-utils/io/binding/_io_task.cpp46
6 files changed, 0 insertions, 717 deletions
diff --git a/source/libs/asura-lib-utils/io/binding/_compressor.cpp b/source/libs/asura-lib-utils/io/binding/_compressor.cpp
deleted file mode 100644
index e69de29..0000000
--- a/source/libs/asura-lib-utils/io/binding/_compressor.cpp
+++ /dev/null
diff --git a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp b/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp
deleted file mode 100644
index cd73b31..0000000
--- a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include "../data_buffer.h"
-
-using namespace Luax;
-
-namespace AsuraEngine
-{
- namespace IO
- {
-
- LUAX_REGISTRY(DataBuffer)
- {
- LUAX_REGISTER_METHODS(state,
- { "New", _New },
- { "GetData", _GetData },
- { "GetSize", _GetSize },
- { "Refactor", _Refactor },
- { "Load", _Load },
- { "Clear", _Clear }
- );
- }
-
- LUAX_POSTPROCESS(DataBuffer)
- {
- }
-
- // databuffer = DataBuffer.New(lstring)
- // databuffer = DataBuffer.New(size)
- LUAX_IMPL_METHOD(DataBuffer, _New)
- {
- LUAX_STATE(L);
-
- if (state.IsType(1, LUA_TSTRING))
- {
- size_t size;
- const byte* bytes = lua_tolstring(L, 1, &size);
- DataBuffer* buffer = new DataBuffer(bytes, size);
- buffer->PushLuaxUserdata(state);
- return 1;
- }
- else if (state.IsType(1, LUA_TNUMBER))
- {
- size_t size = lua_tonumber(L, 1);
- DataBuffer* buffer = new DataBuffer(size);
- buffer->PushLuaxUserdata(state);
- return 1;
- }
- else
- {
- return state.ErrorType(1, "number or string");
- }
- }
-
- // lsting, len = databuffer:GetData()
- LUAX_IMPL_METHOD(DataBuffer, _GetData)
- {
- LUAX_SETUP(L, "U");
-
- DataBuffer* self = state.GetUserdata<DataBuffer>(1);
- lua_pushlstring(L, self->GetData(), self->GetSize());
- return 1;
- }
-
- // length = databuffer:GetSize()
- LUAX_IMPL_METHOD(DataBuffer, _GetSize)
- {
- LUAX_SETUP(L, "U");
-
- DataBuffer* self = state.GetUserdata<DataBuffer>(1);
- lua_pushinteger(L, self->GetSize());
- return 1;
- }
-
- // databuffer:Refactor(size)
- LUAX_IMPL_METHOD(DataBuffer, _Refactor)
- {
- LUAX_PREPARE(L, DataBuffer);
-
- size_t size = state.CheckValue<int>(2);
- self->Refactor(size);
- return 0;
- }
-
- // size = databuffer:Load(lstring)
- // size = databuffer:Load(src)
- LUAX_IMPL_METHOD(DataBuffer, _Load)
- {
- LUAX_STATE(L);
-
- DataBuffer* buffer = state.GetUserdata<DataBuffer>(1);
- const byte* data;
- size_t size;
- if (state.IsType(2, LUA_TSTRING))
- {
- data = lua_tolstring(L, 2, &size);
- size_t len = buffer->Load(data, size);
- state.Push(len);
- return 1;
- }
- else if(state.IsType(2, LUA_TUSERDATA))
- {
- DataBuffer* src = state.CheckUserdata<DataBuffer>(2);
- size_t len = buffer->Load(*src);
- state.Push(len);
- return 1;
- }
- else
- {
- return state.ErrorType(1, "lstring or DataBuffer");
- }
- }
-
- // databuffer:Clear()
- LUAX_IMPL_METHOD(DataBuffer, _Clear)
- {
- LUAX_SETUP(L, "U");
-
- DataBuffer* self = state.GetUserdata<DataBuffer>(1);
- self->Clear();
- return 0;
- }
-
- }
-} \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/io/binding/_file.cpp b/source/libs/asura-lib-utils/io/binding/_file.cpp
deleted file mode 100644
index c44bc90..0000000
--- a/source/libs/asura-lib-utils/io/binding/_file.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-#include "../file.h"
-
-namespace AsuraEngine
-{
- namespace IO
- {
-
- LUAX_REGISTRY(File)
- {
- LUAX_REGISTER_METHODS(state,
- { "New", _New },
- { "Open", _Open },
- { "Close", _Close },
- { "IsOpen", _IsOpen },
- { "GetMode", _GetMode },
- { "GetSize", _GetSize },
- { "Read", _Read },
- { "IsEOF", _IsEOF },
- { "Write", _Write },
- { "Flush", _Flush },
- { "Tell", _Tell },
- { "Seek", _Seek },
- { "SetBuffer", _SetBuffer },
- { "GetBuffer", _GetBuffer },
- { "GetFileName", _GetFileName },
- { "GetExtension", _GetExtension },
- { "GetName", _GetName }
- );
- }
-
- LUAX_POSTPROCESS(File)
- {
- LUAX_REGISTER_ENUM(state, "EFileMode",
- { "CLOSED", FILE_MODE_CLOSED },
- { "READ", FILE_MODE_READ },
- { "WRITE", FILE_MODE_WRITE },
- { "APPEND", FILE_MODE_APPEND }
- );
-
- LUAX_REGISTER_ENUM(state, "EBufferMode",
- { "NONE", BUFFER_MODE_NONE},
- { "LINE", BUFFER_MODE_LINE},
- { "FULL", BUFFER_MODE_FULL}
- );
- }
-
- // file = File.New(name)
- LUAX_IMPL_METHOD(File, _New)
- {
- LUAX_STATE(L);
-
- cc8* name = state.CheckValue<cc8*>(1);
- File* file = new File(name);
- file->PushLuaxUserdata(state);
- return 1;
- }
-
- // successsed = file:Open(mode)
- LUAX_IMPL_METHOD(File, _Open)
- {
- LUAX_PREPARE(L, File);
-
- File::FileMode mode = (File::FileMode)state.CheckValue<int>(2);
- state.Push(self->Open(mode));
- return 1;
- }
-
- // successed = file:Close()
- LUAX_IMPL_METHOD(File, _Close)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->Close());
- return 1;
- }
-
- // opened = file:IsOpen()
- LUAX_IMPL_METHOD(File, _IsOpen)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->IsOpen());
- return 1;
- }
-
- // mode = file:GetMode()
- LUAX_IMPL_METHOD(File, _GetMode)
- {
- LUAX_PREPARE(L, File);
-
- File::FileMode mode = self->GetMode();
- state.Push((int)mode);
- return 1;
- }
-
- // size = file:GetSize()
- LUAX_IMPL_METHOD(File, _GetSize)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->GetSize());
- return 1;
- }
-
- // size = file:Read(dst, len)
- // returns:
- // size ʵʶĴС
- // params:
- // self ļ
- // dst Ŀ껺
- // len ĴС
- LUAX_IMPL_METHOD(File, _Read)
- {
- LUAX_PREPARE(L, File);
-
- DataBuffer* db = state.CheckUserdata<DataBuffer>(2);
- if (!db) return state.ErrorType(2, "DataBuffer");
- int len = state.CheckValue<int>(3);
- int size = self->Read(db, len);
- state.Push(size);
- return 1;
- }
-
- // isEOF = file:IsEOF()
- LUAX_IMPL_METHOD(File, _IsEOF)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->IsEOF());
- return 1;
- }
-
- // isWrite = file:Write(data buffer[, size])
- LUAX_IMPL_METHOD(File, _Write)
- {
- LUAX_PREPARE(L, File);
-
- DataBuffer* db = state.CheckUserdata<DataBuffer>(2);
- if (!db) return state.ErrorType(2, "DataBuffer");
- state.Push(self->Write(db));
- return 1;
- }
-
- // isFlushed = file:Flush()
- LUAX_IMPL_METHOD(File, _Flush)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->Flush());
- return 1;
- }
-
- // pos = file:Tell()
- LUAX_IMPL_METHOD(File, _Tell)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->Tell());
- return 1;
- }
-
- // isSeek = file:Seek(pos)
- LUAX_IMPL_METHOD(File, _Seek)
- {
- LUAX_PREPARE(L, File);
-
- int pos = state.CheckValue<int>(2);
- state.Push(self->Seek(pos));
- return 1;
- }
-
- // isSetted = file:SetBuffer(mode, size)
- LUAX_IMPL_METHOD(File, _SetBuffer)
- {
- LUAX_PREPARE(L, File);
-
- BufferMode mode = (BufferMode)state.CheckValue<int>(2);
- int size = state.CheckValue<int>(3);
- state.Push(self->SetBuffer(mode, size));
- return 1;
- }
-
- // size, mode = file:GetBuffer()
- LUAX_IMPL_METHOD(File, _GetBuffer)
- {
- LUAX_PREPARE(L, File);
-
- size_t size = 0;
- BufferMode mode = self->GetBuffer(ASURA_OUT size);
- state.Push((int)size);
- state.Push((int)mode);
- return 2;
- }
-
- // name = file:GetFileName()
- LUAX_IMPL_METHOD(File, _GetFileName)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->GetFileName());
- return 1;
- }
-
- // name = file:GetExtension()
- LUAX_IMPL_METHOD(File, _GetExtension)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->GetExtension());
- return 1;
- }
-
- // name = file:GetName()
- LUAX_IMPL_METHOD(File, _GetName)
- {
- LUAX_PREPARE(L, File);
-
- state.Push(self->GetName());
- return 1;
- }
-
- }
-} \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/io/binding/_file_data.cpp b/source/libs/asura-lib-utils/io/binding/_file_data.cpp
deleted file mode 100644
index 09a0643..0000000
--- a/source/libs/asura-lib-utils/io/binding/_file_data.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "../file_data.h"
-
-using namespace std;
-
-namespace AsuraEngine
-{
- namespace IO
- {
-
- LUAX_REGISTRY(FileData)
- {
- LUAX_REGISTER_METHODS(state,
- { "GetFileName", _GetFileName },
- { "GetExtension", _GetExtension },
- { "GetName", _GetName },
- { "GetDataBuffer", _GetDataBuffer }
- );
- }
-
- LUAX_POSTPROCESS(FileData)
- {
- }
-
- // filename = filedata:GetFileName()
- LUAX_IMPL_METHOD(FileData, _GetFileName)
- {
- LUAX_PREPARE(L, FileData);
- string filename = self->GetFileName();
- state.Push(filename);
- return 1;
- }
-
- // extension = filedata:GetExtension()
- LUAX_IMPL_METHOD(FileData, _GetExtension)
- {
- LUAX_PREPARE(L, FileData);
- string extension = self->GetExtension();
- state.Push(extension);
- return 1;
- }
-
- // name = filedata:GetName()
- LUAX_IMPL_METHOD(FileData, _GetName)
- {
- LUAX_PREPARE(L, FileData);
- string extension = self->GetName();
- state.Push(extension);
- return 1;
- }
-
- // databuffer = filedata:GetDataBuffer()
- LUAX_IMPL_METHOD(FileData, _GetDataBuffer)
- {
- LUAX_PREPARE(L, FileData);
- self->PushLuaxMemberRef(state, self->mDataRef);
- return 1;
- }
-
- }
-} \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/io/binding/_file_system.cpp b/source/libs/asura-lib-utils/io/binding/_file_system.cpp
deleted file mode 100644
index 3843451..0000000
--- a/source/libs/asura-lib-utils/io/binding/_file_system.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-#include "../file_system.h"
-
-using namespace Luax;
-
-namespace AsuraEngine
-{
- namespace IO
- {
-
-#define PREPARE(l) \
- LUAX_STATE(l); \
- Filesystem* fs = Filesystem::Get();
-
- LUAX_REGISTRY(Filesystem)
- {
- LUAX_REGISTER_METHODS(state,
- { "Init", _Init },
- { "Mount", _Mount },
- { "Unmount", _Unmount },
- { "GetMountPoint", _GetMountPoint },
- { "SetWriteDirectory", _SetWriteDirectory },
- { "GetWriteDirectory", _GetWriteDirectory },
- { "CreateFile", _CreateFile },
- { "CreateDirectory", _CreateDirectory },
- { "Write", _Write },
- { "Append", _Append },
- { "Remove", _Remove },
- { "Read", _Read },
- { "GetFileInfo", _GetFileInfo },
- { "GetDirectoryItems", _GetDirectoryItems }
- );
- }
-
- LUAX_POSTPROCESS(Filesystem)
- {
- LUAX_REGISTER_ENUM(state, "EFileType",
- { "FILE", FILE_TYPE_FILE },
- { "DIRECTORY", FILE_TYPE_DIRECTORY },
- { "SYMLINK", FILE_TYPE_SYMLINK },
- { "OTHER", FILE_TYPE_OTHER }
- );
- }
-
- // Filesystem.Init(arg0)
- LUAX_IMPL_METHOD(Filesystem, _Init)
- {
- PREPARE(L);
-
- const char* arg0 = state.CheckValue<const char*>(1);
- fs->Init(arg0);
- return 0;
- }
-
- // successed = Filesystem.Mount(path, mountpoint[, prepend = false])
- // successed = Filesystem.Mount(data buffer, archievename, mountpoint[, prepend = false])
- LUAX_IMPL_METHOD(Filesystem, _Mount)
- {
- PREPARE(L);
- bool mounted = false;
-
- if (state.IsType(1, LUA_TSTRING))
- {
- cc8* path = state.GetValue<cc8*>(1, "");
- cc8* moutpoint = state.GetValue<cc8*>(2, "/");
- bool prepend = state.GetValue<bool>(3, false);
- mounted = fs->Mount(path, moutpoint, prepend);
- }
- else if (state.IsType(1, LUA_TUSERDATA))
- {
- DataBuffer* db = state.CheckUserdata<DataBuffer>(1);
- if (!db)
- return state.ErrorType(1, "Data Buffer");
- cc8* arcname = state.GetValue<cc8*>(2, "");
- cc8* mountpoint = state.GetValue<cc8*>(3, "/");
- bool prepend = state.GetValue<bool>(4, false);
- mounted = fs->Mount(db, arcname, mountpoint, prepend);
- // retain
- fs->LuaxRetain<DataBuffer>(state, db);
- }
- state.Push(mounted);
- return 1;
- }
-
- // successed = Filesystem.Unmount(path)
- // successed = Filesystem.Unmount(data buffer)
- LUAX_IMPL_METHOD(Filesystem, _Unmount)
- {
- PREPARE(L);
- bool unmounted = false;
-
- if (state.IsType(1, LUA_TSTRING))
- {
- cc8* path = state.GetValue<cc8*>(1, "");
- unmounted = fs->Unmount(path);
- }
- else if (state.IsType(1, LUA_TUSERDATA))
- {
- DataBuffer* db = state.CheckUserdata<DataBuffer>(1);
- if (!db)
- return state.ErrorType(1, "Data Buffer");
- unmounted = fs->Unmount(db);
- if (unmounted)
- fs->LuaxRelease<DataBuffer>(state, db);
- }
- state.Push(unmounted);
- return 1;
- }
-
- // moutpoint = Filesystem.GetMountPoint(path)
- LUAX_IMPL_METHOD(Filesystem, _GetMountPoint)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- std::string mp;
- if (fs->GetMountPoint(path, ASURA_OUT mp))
- state.Push(mp);
- else
- state.PushNil();
-
- return 1;
- }
-
- // Filesystem.SetWriteDirectory(dir)
- LUAX_IMPL_METHOD(Filesystem, _SetWriteDirectory)
- {
- PREPARE(L);
-
- cc8* dir = state.CheckValue<cc8*>(1);
- fs->SetWriteDirectory(dir);
- return 0;
- }
-
- // dir = Filesystem.GetWriteDirectory()
- LUAX_IMPL_METHOD(Filesystem, _GetWriteDirectory)
- {
- PREPARE(L);
-
- std::string dir = fs->GetWriteDirectory();
- state.Push(dir);
- return 1;
- }
-
- // file = Filesystem.CreateFile(name)
- LUAX_IMPL_METHOD(Filesystem, _CreateFile)
- {
- PREPARE(L);
-
- cc8* name = state.CheckValue<cc8*>(1);
- File* file = fs->NewFile(name);
- if (file)
- file->PushLuaxUserdata(state);
- else
- state.PushNil();
- return 1;
- }
-
- // successed = Filesystem.CreateDirectory(name)
- LUAX_IMPL_METHOD(Filesystem, _CreateDirectory)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- state.Push(fs->NewDirectory(path));
- return 1;
- }
-
- // successed = Filesystem.Write(path, data buffer)
- LUAX_IMPL_METHOD(Filesystem, _Write)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- DataBuffer* db = state.CheckUserdata<DataBuffer>(2);
- state.Push(fs->Write(path, db));
- return 1;
- }
-
- // successed = Filesystem.Append(path, data buffer)
- LUAX_IMPL_METHOD(Filesystem, _Append)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- DataBuffer* db = state.CheckUserdata<DataBuffer>(2);
- state.Push(fs->Append(path, db));
- return 1;
- }
-
- // successed = Filesystem.Remove(path)
- LUAX_IMPL_METHOD(Filesystem, _Remove)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- state.Push(fs->Remove(path));
- return 1;
- }
-
- // filedata = Filesystem.Read(path)
- LUAX_IMPL_METHOD(Filesystem, _Read)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- FileData* fd = fs->Read(path);
- if (fd)
- {
- fd->mData->PushLuaxUserdata(state);
- fd->SetLuaxMemberRef(state, fd->mDataRef, -1); // fd->mDataRef = data buffer
- state.Pop(1); // data buffer
- fd->PushLuaxUserdata(state);
- }
- else
- {
- state.PushNil();
- }
- return 1;
- }
-
- // fileinfo = Filesystem.GetFileInfo(path)
- LUAX_IMPL_METHOD(Filesystem, _GetFileInfo)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- FileInfo info;
- if (fs->GetFileInfo(path, &info))
- {
- lua_newtable(L); // info table
- state.SetField(-1, "size", info.size);
- state.SetField(-1, "modtime", info.modtime);
- state.SetField(-1, "type", info.type);
- }
- else
- {
- state.PushNil();
- }
- return 1;
- }
-
- // items = Filesystem.GetDirectoryItems(path)
- LUAX_IMPL_METHOD(Filesystem, _GetDirectoryItems)
- {
- PREPARE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- std::vector<std::string> items;
- if(fs->GetDirectoryItems(path, ASURA_OUT items))
- {
- lua_newtable(L); // item list
- for (int i = 0; i < items.size(); ++i)
- {
- state.SetFieldByIndex(-1, i + 1, items[i]);
- }
- }
- else
- {
- state.PushNil();
- }
- return 1;
- }
-
- }
-} \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/io/binding/_io_task.cpp b/source/libs/asura-lib-utils/io/binding/_io_task.cpp
deleted file mode 100644
index b3c5988..0000000
--- a/source/libs/asura-lib-utils/io/binding/_io_task.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "../io_task.h"
-
-using namespace std;
-
-namespace AsuraEngine
-{
- namespace IO
- {
-
- LUAX_REGISTRY(IOTask)
- {
- LUAX_REGISTER_METHODS(state,
- { "New", _New }
- );
- }
-
- LUAX_POSTPROCESS(IOTask)
- {
- LUAX_REGISTER_ENUM(state, "EIOTaskType",
- { "READ", IOTASK_TYPE_READ },
- { "WRITE", IOTASK_TYPE_WRITE },
- { "APPEND", IOTASK_TYPE_APPEND }
- );
-
- }
-
- // task = IOTask.New(path, buffer, type, callback)
- LUAX_IMPL_METHOD(IOTask, _New)
- {
- LUAX_STATE(L);
-
- cc8* path = state.CheckValue<cc8*>(1);
- DataBuffer* db = state.CheckUserdata<DataBuffer>(2);
- IOTaskType type = (IOTaskType)state.CheckValue<int>(3);
- bool cbk = state.GetTop() >= 4 && state.IsType(4, LUA_TFUNCTION);
-
- IOTask* task = new IOTask(path, db, type);
- task->SetLuaxMemberRef(state, task->mBufferRef, 2);
- if(cbk)
- task->SetLuaxMemberRef(state, task->mCallback, 4);
- task->PushLuaxUserdata(state);
- return 1;
- }
-
- }
-}