diff options
Diffstat (limited to '3rdparty/bx/include/bx/file.h')
-rw-r--r-- | 3rdparty/bx/include/bx/file.h | 73 |
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 |