summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/io/io_task.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-29 00:43:25 +0800
committerchai <chaifix@163.com>2019-03-29 00:43:25 +0800
commitf4c338c63f3456a8eccd56c35e233843687d55be (patch)
tree7278fe4723320c9ef310c5a04d92bf0be1bc778c /source/libs/asura-lib-utils/io/io_task.h
parent3bced067a4144381e59ce4bd0eb749eeff5ad1f4 (diff)
*thread
Diffstat (limited to 'source/libs/asura-lib-utils/io/io_task.h')
-rw-r--r--source/libs/asura-lib-utils/io/io_task.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/source/libs/asura-lib-utils/io/io_task.h b/source/libs/asura-lib-utils/io/io_task.h
index a79b2a8..5f454ee 100644
--- a/source/libs/asura-lib-utils/io/io_task.h
+++ b/source/libs/asura-lib-utils/io/io_task.h
@@ -13,32 +13,42 @@ namespace AsuraEngine
namespace IO
{
+ enum IOTaskType
+ {
+ IOTASK_TYPE_READ,
+ IOTASK_TYPE_WRITE,
+ IOTASK_TYPE_APPEND,
+ };
+
///
/// ȡļ
///
class IOTask ASURA_FINAL
- : public AEScripting::Portable<IOTask>
- , public AEThreading::Task
+ : public AEThreading::Task
+ , public AEScripting::Portable<IOTask>
{
public:
LUAX_DECL_FACTORY(IOTask);
- IOTask(const std::string& path, DataBuffer* buffer);
+ IOTask(const std::string& path, DataBuffer* buffer, IOTaskType type);
~IOTask();
bool Execute() override ;
- void Invoke(lua_State* thread) override;
+ void Invoke() override;
private:
- std::string mPath;
-
- DataBuffer* mDst;
- Luax::LuaxMemberRef mDstRef;
+ LUAX_DECL_ENUM(IOTaskType);
LUAX_DECL_METHOD(_New);
+ std::string mPath;
+ IOTaskType mType;
+
+ ASURA_REF DataBuffer* mBuffer;
+ Luax::LuaxMemberRef mBufferRef;
+
};
}