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.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/3rdparty/bx/include/bx/file.h b/3rdparty/bx/include/bx/file.h
new file mode 100644
index 00000000000..144f965d2c4
--- /dev/null
+++ b/3rdparty/bx/include/bx/file.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2010-2017 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause
+ */
+
+#ifndef BX_FILE_H_HEADER_GUARD
+#define BX_FILE_H_HEADER_GUARD
+
+#include "filepath.h"
+#include "readerwriter.h"
+
+namespace bx
+{
+ ///
+ ReaderI* getStdIn();
+
+ ///
+ WriterI* getStdOut();
+
+ ///
+ WriterI* getStdErr();
+
+ ///
+ WriterI* getNullOut();
+
+ ///
+ class FileReader : public FileReaderI
+ {
+ public:
+ ///
+ FileReader();
+
+ ///
+ virtual ~FileReader();
+
+ ///
+ virtual bool open(const FilePath& _filePath, Error* _err) override;
+
+ ///
+ virtual void close() override;
+
+ ///
+ virtual int64_t seek(int64_t _offset = 0, Whence::Enum _whence = Whence::Current) override;
+
+ ///
+ virtual int32_t read(void* _data, int32_t _size, Error* _err) override;
+
+ private:
+ BX_ALIGN_DECL(16, uint8_t) m_internal[64];
+ };
+
+ ///
+ class FileWriter : public FileWriterI
+ {
+ public:
+ ///
+ FileWriter();
+
+ ///
+ virtual ~FileWriter();
+
+ ///
+ virtual bool open(const FilePath& _filePath, bool _append, Error* _err) override;
+
+ ///
+ virtual void close() override;
+
+ ///
+ virtual int64_t seek(int64_t _offset = 0, Whence::Enum _whence = Whence::Current) override;
+
+ ///
+ virtual int32_t write(const void* _data, int32_t _size, Error* _err) override;
+
+ private:
+ BX_ALIGN_DECL(16, uint8_t) m_internal[64];
+ };
+
+ ///
+ struct FileInfo
+ {
+ enum Enum
+ {
+ Regular,
+ Directory,
+
+ Count
+ };
+
+ uint64_t m_size;
+ Enum m_type;
+ };
+
+ ///
+ bool stat(const FilePath& _filePath, FileInfo& _outFileInfo);
+
+} // namespace bx
+
+#endif // BX_FILE_H_HEADER_GUARD