TS-E+ базовая библиотека.
libTSE+
 Указатель Классы Функции Переменные Определения типов
vfs.h
1 /*
2  * vfs.h
3  *
4  * Created on: Apr 16, 2015
5  * Author: nick
6  */
7 
8 #ifndef VFS_H_
9 #define VFS_H_
10 
11 #include <stdio.h>
12 #include <string.h>
13 
14 #define TYPE_FILE 1
15 #define TYPE_FILE_DIRECTORY 2
16 #define TYPE_FILE_GZIPED 0x10
17 
18 #define FILENAME_SIZE 65
19 #define FLASH_FS_SIGN 0x263A
20 
21 #define VFS_FLASH_ADDRESS 0x42000L
22 #define VFS_USE_MAX_SIZE 0
23 
24 class VFS;
28 class VFSFile {
29  friend class VFSFileSystem;
30 private:
31  uint32_t _address;
32  uint32_t _size;
33  uint32_t _ptr;
34  uint8_t _type;
35 public:
39  VFSFile(uint32_t address, uint32_t size, uint8_t type) : _address(address),_size(size),_ptr(0),_type(type) {
40  }
44  bool eof() { return _ptr == _size; }
48  uint32_t size() { return _size; }
52  uint32_t tell() { return _ptr; }
58  virtual void seek(const int32_t offset, const uint8_t direction);
59  virtual size_t read(void *,size_t);
60  virtual size_t write(const void * buffer, size_t size) { return 0; }
64  size_t reads(char *,size_t);
68  bool isDirectory() { return _type == TYPE_FILE_DIRECTORY; }
72  virtual char readc();
73  virtual ~VFSFile() {}
74 };
75 
79 class VFS {
80 private:
81  uint32_t _address;
82  uint32_t _size;
83  uint32_t _used;
84  bool _locked;
85 public:
89  static void close(VFSFile *file) {
90  delete file;
91  }
92 
98  VFS(uint32_t size);
107  void rescan();
108 
109  virtual VFSFile *open(const char *name);
116  virtual VFSFile *open_P(const char *name);
120  virtual uint32_t size() { return _size; }
124  virtual uint32_t used() { return _used; }
129  virtual bool isExists(const char *name);
136  virtual void forEachFile(const char * path,bool (*iterator)(const char *,VFSFile *, void *),void *arg);
140  virtual void lock();
144  virtual void unlock();
145  virtual ~VFS() { }
146 };
147 
148 extern VFS *vfs;
149 #endif /* VFS_H_ */
virtual bool isExists(const char *name)
static void close(VFSFile *file)
Definition: vfs.h:89
uint32_t tell()
Definition: vfs.h:52
virtual VFSFile * open_P(const char *name)
bool isDirectory()
Definition: vfs.h:68
virtual void lock()
virtual uint32_t size()
Definition: vfs.h:120
uint32_t size()
Definition: vfs.h:48
virtual void seek(const int32_t offset, const uint8_t direction)
Definition: vfs.h:79
virtual char readc()
size_t reads(char *, size_t)
virtual void unlock()
void rescan()
bool eof()
Definition: vfs.h:44
Definition: vfs.h:28
VFSFile(uint32_t address, uint32_t size, uint8_t type)
Definition: vfs.h:39
virtual uint32_t used()
Definition: vfs.h:124
VFS(uint32_t size)
virtual void forEachFile(const char *path, bool(*iterator)(const char *, VFSFile *, void *), void *arg)