From 8bfe54676f728076a92d802bb5d064e58265c8f2 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 6 Jun 2019 00:12:17 +0800 Subject: =?UTF-8?q?-=E6=96=87=E4=BB=B6=E5=A4=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/libs/asura-lib-utils/io/file.h | 146 ---------------------------------- 1 file changed, 146 deletions(-) delete mode 100644 source/libs/asura-lib-utils/io/file.h (limited to 'source/libs/asura-lib-utils/io/file.h') diff --git a/source/libs/asura-lib-utils/io/file.h b/source/libs/asura-lib-utils/io/file.h deleted file mode 100644 index 56077e0..0000000 --- a/source/libs/asura-lib-utils/io/file.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef __ASURA_ENGINE_FILE_H__ -#define __ASURA_ENGINE_FILE_H__ - -#include "physfs/physfs.h" - -#include "../scripting/portable.hpp" -#include "../threading/thread.h" - -#include "file_data.h" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 以流的形式打开文件,可以指定读写起点、大小。在期望使用流读取时使用本类,否则使用Filesystem.read()直接读取文件全部 - /// 内容,并返回一个FileData对象。 - /// - class File ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(File); - - /// - /// 文件读写模式 - /// - enum FileMode - { - FILE_MODE_CLOSED, - FILE_MODE_READ, - FILE_MODE_WRITE, - FILE_MODE_APPEND, - }; - - /// - /// 文件写入时缓冲区行为 - /// - enum BufferMode - { - BUFFER_MODE_NONE, ///< 不使用缓冲,立即写入文件 - BUFFER_MODE_LINE, ///< 行缓冲,遇到换行符或者达到缓冲区大小时写入文件 - BUFFER_MODE_FULL, ///< 完全缓冲,缓冲区满时写入文件 - }; - - File(const std::string& filename); - ~File(); - - bool Open(FileMode mode); - bool Close(); - bool IsOpen(); - FileMode GetMode(); - size_t GetSize(); - - /// - /// 读取到data buffer里,并返回读入的内容 - /// - size_t Read(ASURA_OUT DataBuffer* dst, size_t length); - size_t ReadAll(ASURA_OUT DataBuffer* dst); - size_t ReadAsync(ASURA_OUT DataBuffer* dst); - - /// - /// 是否读到了文件结尾 - /// - bool IsEOF(); - - /// - /// 将data buffer中的内容写入,并返回是否成功 - /// - bool Write(ASURA_REF DataBuffer* src); - - /// - /// 异步写文件,将写文件task加入thread的队列。 - /// - bool WriteAsync(ASURA_REF DataBuffer* src, AEThreading::Thread* thread); - - /// - /// 如果开启了缓冲,强制清空缓冲区,写入文件。 - /// - bool Flush(); - - /// - /// 返回当前读写位置 - /// - size_t Tell(); - - /// - /// 跳到对应位置 - /// - bool Seek(size_t pos); - - /// - /// 设置缓冲区大小和模式 - /// - bool SetBuffer(BufferMode mode, size_t size); - - /// - /// 获取缓冲区大小和模式 - /// - BufferMode GetBuffer(ASURA_OUT size_t& size); - - const std::string& GetFileName(); - const std::string& GetName(); - const std::string& GetExtension(); - - private: - - PHYSFS_File* mFileHandle; ///< physfs 文件 - std::string mFileName; ///< 文件名 - std::string mExtension; ///< 不包含点的扩展名 - std::string mName; ///< 不包含点和扩展名的文件名 - FileMode mMode; ///< 文件打开模式 - BufferMode mBufferMode; ///< 写入缓冲区模式 - size_t mBufferSize; ///< 写入缓冲区大小 - - LUAX_DECL_ENUM(FileMode); - LUAX_DECL_ENUM(BufferMode); - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Open); - LUAX_DECL_METHOD(_Close); - LUAX_DECL_METHOD(_IsOpen); - LUAX_DECL_METHOD(_GetMode); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_Read); - LUAX_DECL_METHOD(_Write); - LUAX_DECL_METHOD(_ReadAsync); - LUAX_DECL_METHOD(_WriteAsync); - LUAX_DECL_METHOD(_IsEOF); - LUAX_DECL_METHOD(_Flush); - LUAX_DECL_METHOD(_Tell); - LUAX_DECL_METHOD(_Seek); - LUAX_DECL_METHOD(_SetBuffer); - LUAX_DECL_METHOD(_GetBuffer); - LUAX_DECL_METHOD(_GetFileName); - LUAX_DECL_METHOD(_GetExtension); - LUAX_DECL_METHOD(_GetName); - - }; - - } -} - -#endif \ No newline at end of file -- cgit v1.1-26-g67d0