diff options
Diffstat (limited to 'source/modules/asura-core')
20 files changed, 126 insertions, 137 deletions
diff --git a/source/modules/asura-core/application.h b/source/modules/asura-core/application.h index 2285430..ccb39d7 100644 --- a/source/modules/asura-core/application.h +++ b/source/modules/asura-core/application.h @@ -32,7 +32,7 @@ namespace AsuraEngine /// /// ѭ /// - ASURA_ABSTRACT class Application + class Application { public: @@ -69,7 +69,7 @@ namespace AsuraEngine /// lua̫ʹˡC++дȻעһصһ̴߳lua_Stateעắִк /// ̵߳lua_Stateֻ֤һnativeʵ֮һlua_State /// - lua_State* mMainLuaState; + Luax::LuaxVM* mVM; /// /// Asura libsᰴն˳ʼ˳ʱִ˳ diff --git a/source/modules/asura-core/core_module.cpp b/source/modules/asura-core/core_module.cpp index e69de29..6f484c0 100644 --- a/source/modules/asura-core/core_module.cpp +++ b/source/modules/asura-core/core_module.cpp @@ -0,0 +1,19 @@ +#include "core_module.h" + +using namespace AEThreading; + +namespace AsuraEngine +{ + + void CoreModule::Initialize(Luax::LuaxState& state) + { + // Threading + LUAX_REGISTER_FACTORY(state, ThreadEx); + } + + void CoreModule::Finalize(Luax::LuaxState& state) + { + + } + +}
\ No newline at end of file diff --git a/source/modules/asura-core/core_module.h b/source/modules/asura-core/core_module.h index 2cded93..a295b18 100644 --- a/source/modules/asura-core/core_module.h +++ b/source/modules/asura-core/core_module.h @@ -1,10 +1,22 @@ #ifndef __ASURA_CORE_MODULE_H__ #define __ASURA_CORE_MODULE_H__ +#include <asura-utils/module.h> + +#include "threading/thread_ex.h" + namespace AsuraEngine { - + class CoreModule : public Module + { + public: + + void Initialize(Luax::LuaxState& state) override; + + void Finalize(Luax::LuaxState& state) override; + + }; } diff --git a/source/modules/asura-core/threading/coroutine.cpp b/source/modules/asura-core/threading/channel.cpp index e69de29..e69de29 100644 --- a/source/modules/asura-core/threading/coroutine.cpp +++ b/source/modules/asura-core/threading/channel.cpp diff --git a/source/modules/asura-core/threading/channel.h b/source/modules/asura-core/threading/channel.h new file mode 100644 index 0000000..edcd8cb --- /dev/null +++ b/source/modules/asura-core/threading/channel.h @@ -0,0 +1,19 @@ +#ifndef __ASURA_THREAD_CHANNEL_H__ +#define __ASURA_THREAD_CHANNEL_H__ + +#include <asura-utils/scripting/portable.hpp> + +namespace AsuraEngine +{ + namespace Threading + { + + class Channel + { + + }; + + } +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/threading/coroutine.h b/source/modules/asura-core/threading/coroutine.h deleted file mode 100644 index 1ac6b21..0000000 --- a/source/modules/asura-core/threading/coroutine.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ASURA_COROUTINE_H__ -#define __ASURA_COROUTINE_H__ - -#include <asura-lib-utils/scripting/portable.hpp> - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// luaЭ̣һЩ - /// - class Coroutine ASURA_FINAL - : public AEScripting::Portable<Coroutine> - { - public: - - LUAX_DECL_FACTORY(Coroutine); - - private: - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Run); - - }; - - } -} - -#endif
\ No newline at end of file diff --git a/source/modules/asura-core/threading/thread.cpp b/source/modules/asura-core/threading/thread.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread.h b/source/modules/asura-core/threading/thread.h deleted file mode 100644 index f4d3b48..0000000 --- a/source/modules/asura-core/threading/thread.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __ASURA_THREAD_H__ -#define __ASURA_THREAD_H__ - -#include <queue> -#include <asura-lib-utils/scripting/portable.hpp> - -#include "thread_task.h" - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// ̵߳ľʵ֣ûģһֲԣ - /// 1: win32 - /// 2: posix - /// 3: SDL - /// 4: std::thread - /// - ASURA_ABSTRACT class ThreadImpl - { - public: - - }; - - /// - /// ߳壬ÿ߳άһtask queue - /// - class Thread ASURA_FINAL - : public AEScripting::Portable<Thread> - { - public: - - LUAX_DECL_FACTORY(Thread); - - bool Enqueue(ThreadTask* task); - - private: - - /// - /// С - /// - std::queue<ThreadTask*> mTaskQueue; - - ThreadImpl* mImpl; - - }; - - } -} - -#endif
\ No newline at end of file diff --git a/source/modules/asura-core/threading/thread_ex.cpp b/source/modules/asura-core/threading/thread_ex.cpp new file mode 100644 index 0000000..18b9fc7 --- /dev/null +++ b/source/modules/asura-core/threading/thread_ex.cpp @@ -0,0 +1,19 @@ +#include "thread_ex.h" + +namespace AsuraEngine +{ + namespace Threading + { + + void ThreadEx::Process() + { + + } + + void ThreadEx::RegisterModules() + { + + } + + } +}
\ No newline at end of file diff --git a/source/modules/asura-core/threading/thread_ex.h b/source/modules/asura-core/threading/thread_ex.h new file mode 100644 index 0000000..9f63034 --- /dev/null +++ b/source/modules/asura-core/threading/thread_ex.h @@ -0,0 +1,54 @@ +#ifndef __ASURA_THREAD_EX_H__ +#define __ASURA_THREAD_EX_H__ + +#include <asura-utils/scripting/portable.hpp> +#include <asura-utils/threading/thread.h> + +namespace AsuraEngine +{ + namespace Threading + { + + /// + /// ThreadExеͬͨ˶ͨݡ + /// + class ThreadEx ASURA_FINAL + : public AEScripting::Portable<ThreadEx> + , public Threadable + { + public: + + LUAX_DECL_FACTORY(ThreadEx); + + ThreadEx(); + ~ThreadEx(); + + int Process() override; + + private: + + //----------------------------------------------------------------------------// + + LUAX_DECL_METHOD(_New); + + //----------------------------------------------------------------------------// + + /// + /// ̵߳עAsuraͽӿڣעֻһֶ֮䴫ݡ + /// Щ͵Ķ + /// + void RegisterModules(); + + ThreadImpl* mImpl; + + /// + /// ̴߳ + /// + Luax::LuaxVM* mVM; + + }; + + } +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/threading/thread_impl_posix.cpp b/source/modules/asura-core/threading/thread_impl_posix.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_posix.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_posix.h b/source/modules/asura-core/threading/thread_impl_posix.h deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_posix.h +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_sdl.cpp b/source/modules/asura-core/threading/thread_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_sdl.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_sdl.h b/source/modules/asura-core/threading/thread_impl_sdl.h deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_sdl.h +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_std.cpp b/source/modules/asura-core/threading/thread_impl_std.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_std.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_std.h b/source/modules/asura-core/threading/thread_impl_std.h deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_std.h +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_win32.cpp b/source/modules/asura-core/threading/thread_impl_win32.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_impl_win32.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_impl_win32.h b/source/modules/asura-core/threading/thread_impl_win32.h deleted file mode 100644 index 5d854cc..0000000 --- a/source/modules/asura-core/threading/thread_impl_win32.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_THREAD_WIN32_H__ -#define __ASURA_THREAD_WIN32_H__ - -#include "../core_config.h" - -#include "thread.h" - -#if ASURA_THREAD_WIN32 - -namespace AsuraEngine -{ - namespace Threading - { - - class ThreadImplWin32 : public ThreadImpl - { - - }; - - } -} - -#endif // #if ASURA_THREAD_WIN32 - -#endif
\ No newline at end of file diff --git a/source/modules/asura-core/threading/thread_task.cpp b/source/modules/asura-core/threading/thread_task.cpp deleted file mode 100644 index e69de29..0000000 --- a/source/modules/asura-core/threading/thread_task.cpp +++ /dev/null diff --git a/source/modules/asura-core/threading/thread_task.h b/source/modules/asura-core/threading/thread_task.h deleted file mode 100644 index 19eb113..0000000 --- a/source/modules/asura-core/threading/thread_task.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_THRAD_TASK_H__ -#define __ASURA_THRAD_TASK_H__ - -#include <asura-lib-utils/type.h> - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// ϣһ̴̳߳TaskдExecute - /// - ASURA_ABSTRACT class ThreadTask - { - public: - - virtual bool Execute() = 0; - - }; - - } -} - -#endif
\ No newline at end of file |