file_access_memory.h
1 /*************************************************************************/
2 /* file_access_memory.h */
3 /*************************************************************************/
4 /* This file is part of: */
5 /* GODOT ENGINE */
6 /* http://www.godotengine.org */
7 /*************************************************************************/
8 /* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
9 /* */
10 /* Permission is hereby granted, free of charge, to any person obtaining */
11 /* a copy of this software and associated documentation files (the */
12 /* "Software"), to deal in the Software without restriction, including */
13 /* without limitation the rights to use, copy, modify, merge, publish, */
14 /* distribute, sublicense, and/or sell copies of the Software, and to */
15 /* permit persons to whom the Software is furnished to do so, subject to */
16 /* the following conditions: */
17 /* */
18 /* The above copyright notice and this permission notice shall be */
19 /* included in all copies or substantial portions of the Software. */
20 /* */
21 /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
22 /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
23 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
24 /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
25 /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
26 /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
27 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
28 /*************************************************************************/
29 #ifndef FILE_ACCESS_MEMORY_H
30 #define FILE_ACCESS_MEMORY_H
31 
32 #include "os/file_access.h"
33 
34 class FileAccessMemory : public FileAccess {
35 
36  uint8_t* data;
37  int length;
38  mutable int pos;
39 
40  static FileAccess* create();
41 
42 public:
43 
44  static void register_file(String p_name, Vector<uint8_t> p_data);
45  static void cleanup();
46 
47  virtual Error open_custom(const uint8_t* p_data, int p_len);
48  virtual Error _open(const String& p_path, int p_mode_flags);
49  virtual void close();
50  virtual bool is_open() const;
51 
52  virtual void seek(size_t p_position);
53  virtual void seek_end(int64_t p_position);
54  virtual size_t get_pos() const;
55  virtual size_t get_len() const;
56 
57  virtual bool eof_reached() const;
58 
59  virtual uint8_t get_8() const;
60 
61  virtual int get_buffer(uint8_t *p_dst,int p_length) const;
62 
63  virtual Error get_error() const;
64 
65  virtual void store_8(uint8_t p_dest);
66  virtual void store_buffer(const uint8_t *p_src,int p_length);
67 
68  virtual bool file_exists(const String& p_name);
69 
70  virtual uint64_t _get_modified_time(const String& p_file) { return 0; }
71 
72 
73 
75 };
76 
77 #endif // FILE_ACCESS_MEMORY_H
virtual bool is_open() const
true when file is open
Definition: file_access_memory.cpp:107
virtual size_t get_pos() const
get position in the file
Definition: file_access_memory.cpp:124
virtual void store_8(uint8_t p_dest)
store a byte
Definition: file_access_memory.cpp:174
virtual bool eof_reached() const
reading passed EOF
Definition: file_access_memory.cpp:136
virtual void close()
close a file
Definition: file_access_memory.cpp:102
virtual size_t get_len() const
get size of the file
Definition: file_access_memory.cpp:130
virtual void store_buffer(const uint8_t *p_src, int p_length)
store an array of bytes
Definition: file_access_memory.cpp:181
virtual void seek(size_t p_position)
seek to a given position
Definition: file_access_memory.cpp:112
virtual uint8_t get_8() const
get a byte
Definition: file_access_memory.cpp:141
virtual int get_buffer(uint8_t *p_dst, int p_length) const
get an array of bytes
Definition: file_access_memory.cpp:152
virtual Error _open(const String &p_path, int p_mode_flags)
open a file
Definition: file_access_memory.cpp:85
Definition: ustring.h:64
Definition: file_access.h:40
virtual void seek_end(int64_t p_position)
seek from the end of file
Definition: file_access_memory.cpp:118
virtual Error open_custom(const uint8_t *p_data, int p_len)
open a file
Definition: file_access_memory.cpp:77
Definition: file_access_memory.h:34
virtual bool file_exists(const String &p_name)
return true if a file exists
Definition: file_access_memory.cpp:68
virtual Error get_error() const
get last error
Definition: file_access_memory.cpp:169