summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bx/include/bx/file.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bx/include/bx/file.h')
-rw-r--r--3rdparty/bx/include/bx/file.h73
1 files changed, 59 insertions, 14 deletions
diff --git a/3rdparty/bx/include/bx/file.h b/3rdparty/bx/include/bx/file.h
index 4c0dd415f1b..42c15ba9622 100644
--- a/3rdparty/bx/include/bx/file.h
+++ b/3rdparty/bx/include/bx/file.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2018 Branimir Karadzic. All rights reserved.
+ * Copyright 2010-2019 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
*/
@@ -11,19 +11,19 @@
namespace bx
{
- ///
+ /// Returns standard input reader.
ReaderI* getStdIn();
- ///
+ /// Returns standard output writer.
WriterI* getStdOut();
- ///
+ /// Returns standard error writer.
WriterI* getStdErr();
- ///
+ /// Returns null output writer.
WriterI* getNullOut();
- ///
+ /// File reader.
class FileReader : public FileReaderI
{
public:
@@ -49,7 +49,7 @@ namespace bx
BX_ALIGN_DECL(16, uint8_t) m_internal[64];
};
- ///
+ /// File writer.
class FileWriter : public FileWriterI
{
public:
@@ -75,23 +75,68 @@ namespace bx
BX_ALIGN_DECL(16, uint8_t) m_internal[64];
};
- ///
- struct FileInfo
+ /// File type.
+ struct FileType
{
+ /// File types:
enum Enum
{
- Regular,
- Directory,
+ File, //!< File.
+ Dir, //!< Directory.
Count
};
+ };
+
+ /// File info.
+ struct FileInfo
+ {
+ FilePath filePath; //!< File path.
+ uint64_t size; //!< File size.
+ FileType::Enum type; //!< File type.
+ };
+
+ /// Directory reader.
+ class DirectoryReader : public ReaderOpenI, public CloserI, public ReaderI
+ {
+ public:
+ ///
+ DirectoryReader();
+
+ ///
+ virtual ~DirectoryReader();
+
+ ///
+ virtual bool open(const FilePath& _filePath, Error* _err) override;
+
+ ///
+ virtual void close() override;
+
+ ///
+ virtual int32_t read(void* _data, int32_t _size, Error* _err) override;
- uint64_t m_size;
- Enum m_type;
+ private:
+ BX_ALIGN_DECL(16, uint8_t) m_internal[sizeof(FilePath)+sizeof(FileInfo)+16];
};
+ /// FIle stat.
+ bool stat(FileInfo& _outFileInfo, const FilePath& _filePath);
+
+ /// Creates a directory named `_filePath`.
+ ///
+ bool make(const FilePath& _filePath, Error* _err = NULL);
+
+ /// Creates a directory named `_filePath` along with all necessary parents.
+ ///
+ bool makeAll(const FilePath& _filePath, Error* _err = NULL);
+
+ /// Removes file or directory.
+ ///
+ bool remove(const FilePath& _filePath, Error* _err = NULL);
+
+ /// Removes file or directory recursivelly.
///
- bool stat(const FilePath& _filePath, FileInfo& _outFileInfo);
+ bool removeAll(const FilePath& _filePath, Error* _err = NULL);
} // namespace bx