|
@@ -5,7 +5,7 @@
|
|
|
/* GODOT ENGINE */
|
|
|
/* http://www.godotengine.org */
|
|
|
/*************************************************************************/
|
|
|
-/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
|
|
+/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
|
|
/* */
|
|
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
|
|
/* a copy of this software and associated documentation files (the */
|
|
@@ -26,76 +26,76 @@
|
|
|
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
|
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
|
|
/*************************************************************************/
|
|
|
-#ifndef FILE_ACCESS_COMPRESSED_H
|
|
|
-#define FILE_ACCESS_COMPRESSED_H
|
|
|
-
|
|
|
-#include "io/compression.h"
|
|
|
-#include "os/file_access.h"
|
|
|
-
|
|
|
-class FileAccessCompressed : public FileAccess {
|
|
|
-
|
|
|
- Compression::Mode cmode;
|
|
|
- bool writing;
|
|
|
- int write_pos;
|
|
|
- uint8_t*write_ptr;
|
|
|
- int write_buffer_size;
|
|
|
- int write_max;
|
|
|
- int block_size;
|
|
|
- mutable bool read_eof;
|
|
|
- mutable bool at_end;
|
|
|
-
|
|
|
- struct ReadBlock {
|
|
|
- int csize;
|
|
|
- int offset;
|
|
|
- };
|
|
|
-
|
|
|
- mutable Vector<uint8_t> comp_buffer;
|
|
|
- uint8_t *read_ptr;
|
|
|
- mutable int read_block;
|
|
|
- int read_block_count;
|
|
|
- mutable int read_block_size;
|
|
|
- mutable int read_pos;
|
|
|
- Vector<ReadBlock> read_blocks;
|
|
|
- int read_total;
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- String magic;
|
|
|
- mutable Vector<uint8_t> buffer;
|
|
|
- FileAccess *f;
|
|
|
-public:
|
|
|
-
|
|
|
- void configure(const String& p_magic, Compression::Mode p_mode=Compression::MODE_FASTLZ, int p_block_size=4096);
|
|
|
-
|
|
|
- Error open_after_magic(FileAccess *p_base);
|
|
|
-
|
|
|
- virtual Error _open(const String& p_path, int p_mode_flags); ///< open a file
|
|
|
- virtual void close(); ///< close a file
|
|
|
- virtual bool is_open() const; ///< true when file is open
|
|
|
-
|
|
|
- virtual void seek(size_t p_position); ///< seek to a given position
|
|
|
- virtual void seek_end(int64_t p_position=0); ///< seek from the end of file
|
|
|
- virtual size_t get_pos() const; ///< get position in the file
|
|
|
- virtual size_t get_len() const; ///< get size of the file
|
|
|
-
|
|
|
- virtual bool eof_reached() const; ///< reading passed EOF
|
|
|
-
|
|
|
- virtual uint8_t get_8() const; ///< get a byte
|
|
|
- virtual int get_buffer(uint8_t *p_dst, int p_length) const;
|
|
|
-
|
|
|
- virtual Error get_error() const; ///< get last error
|
|
|
-
|
|
|
- virtual void store_8(uint8_t p_dest); ///< store a byte
|
|
|
-
|
|
|
- virtual bool file_exists(const String& p_name); ///< return true if a file exists
|
|
|
-
|
|
|
- virtual uint64_t _get_modified_time(const String& p_file);
|
|
|
-
|
|
|
-
|
|
|
- FileAccessCompressed();
|
|
|
- virtual ~FileAccessCompressed();
|
|
|
-
|
|
|
-};
|
|
|
-
|
|
|
-#endif // FILE_ACCESS_COMPRESSED_H
|
|
|
+#ifndef FILE_ACCESS_COMPRESSED_H
|
|
|
+#define FILE_ACCESS_COMPRESSED_H
|
|
|
+
|
|
|
+#include "io/compression.h"
|
|
|
+#include "os/file_access.h"
|
|
|
+
|
|
|
+class FileAccessCompressed : public FileAccess {
|
|
|
+
|
|
|
+ Compression::Mode cmode;
|
|
|
+ bool writing;
|
|
|
+ int write_pos;
|
|
|
+ uint8_t*write_ptr;
|
|
|
+ int write_buffer_size;
|
|
|
+ int write_max;
|
|
|
+ int block_size;
|
|
|
+ mutable bool read_eof;
|
|
|
+ mutable bool at_end;
|
|
|
+
|
|
|
+ struct ReadBlock {
|
|
|
+ int csize;
|
|
|
+ int offset;
|
|
|
+ };
|
|
|
+
|
|
|
+ mutable Vector<uint8_t> comp_buffer;
|
|
|
+ uint8_t *read_ptr;
|
|
|
+ mutable int read_block;
|
|
|
+ int read_block_count;
|
|
|
+ mutable int read_block_size;
|
|
|
+ mutable int read_pos;
|
|
|
+ Vector<ReadBlock> read_blocks;
|
|
|
+ int read_total;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String magic;
|
|
|
+ mutable Vector<uint8_t> buffer;
|
|
|
+ FileAccess *f;
|
|
|
+public:
|
|
|
+
|
|
|
+ void configure(const String& p_magic, Compression::Mode p_mode=Compression::MODE_FASTLZ, int p_block_size=4096);
|
|
|
+
|
|
|
+ Error open_after_magic(FileAccess *p_base);
|
|
|
+
|
|
|
+ virtual Error _open(const String& p_path, int p_mode_flags); ///< open a file
|
|
|
+ virtual void close(); ///< close a file
|
|
|
+ virtual bool is_open() const; ///< true when file is open
|
|
|
+
|
|
|
+ virtual void seek(size_t p_position); ///< seek to a given position
|
|
|
+ virtual void seek_end(int64_t p_position=0); ///< seek from the end of file
|
|
|
+ virtual size_t get_pos() const; ///< get position in the file
|
|
|
+ virtual size_t get_len() const; ///< get size of the file
|
|
|
+
|
|
|
+ virtual bool eof_reached() const; ///< reading passed EOF
|
|
|
+
|
|
|
+ virtual uint8_t get_8() const; ///< get a byte
|
|
|
+ virtual int get_buffer(uint8_t *p_dst, int p_length) const;
|
|
|
+
|
|
|
+ virtual Error get_error() const; ///< get last error
|
|
|
+
|
|
|
+ virtual void store_8(uint8_t p_dest); ///< store a byte
|
|
|
+
|
|
|
+ virtual bool file_exists(const String& p_name); ///< return true if a file exists
|
|
|
+
|
|
|
+ virtual uint64_t _get_modified_time(const String& p_file);
|
|
|
+
|
|
|
+
|
|
|
+ FileAccessCompressed();
|
|
|
+ virtual ~FileAccessCompressed();
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+#endif // FILE_ACCESS_COMPRESSED_H
|