ESP3D  3.0
Firmware for ESP boards connected to 3D Printer
esp_filesystem.h
Go to the documentation of this file.
1 /*
2  esp_filesystem.h - ESP3D filesystem configuration class
3 
4  Copyright (c) 2014 Luc Lebosse. All rights reserved.
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either
9  version 2.1 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library; if not, write to the Free Software
18  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20 
21 #ifndef _ESP_FILESYSTEM_H
22 #define _ESP_FILESYSTEM_H
23 #include "../../include/esp3d_config.h"
24 #include <time.h>
25 
26 #define ESP_FLASH_FS_HEADER "/FS"
27 
28 #define ESP_MAX_OPENHANDLE 4
29 
30 class ESP_File
31 {
32 public:
33  ESP_File(void * handle = nullptr, bool isdir =false, bool iswritemode = false, const char * path = nullptr);
34  ESP_File(const char * name, const char * filename, bool isdir = true, size_t size =0);
35  ~ESP_File();
36  operator bool() const;
37  bool isDirectory();
38  const char* name() const;
39  const char* filename() const;
40  void close();
41  bool isOpen();
42  ESP_File & operator=(const ESP_File & other);
43  size_t size();
44  time_t getLastWrite();
45  int available();
46  size_t write(uint8_t i);
47  size_t write(const uint8_t *buf, size_t size);
48  int read();
49  size_t read(uint8_t* buf, size_t size);
50  void flush();
52 private:
53  String _dirlist;
54  bool _isdir;
55  bool _isfakedir;
56  bool _iswritemode;
57  int8_t _index;
58  String _filename;
59  String _name;
60  size_t _size;
61  time_t _lastwrite;
62 };
63 
65 {
66 public:
67  static String & formatBytes (uint64_t bytes);
70  static bool begin();
71  static void end();
72  static size_t totalBytes();
73  static size_t usedBytes();
74  static size_t freeBytes();
75  static size_t max_update_size();
76  static const char * FilesystemName();
77  static bool format();
78  static ESP_File open(const char* path, uint8_t mode = ESP_FILE_READ);
79  static bool exists(const char* path);
80  static bool remove(const char *path);
81  static bool mkdir(const char *path);
82  static bool rmdir(const char *path);
83  static bool rename(const char *oldpath, const char *newpath);
84  static void closeAll();
85  static bool started()
86  {
87  return _started;
88  }
89 private:
90  static bool _started;
91 };
92 
93 
94 #endif //ESP_FILESYSTEM_H
ESP_File::close
void close()
ESP_FileSystem::closeAll
static void closeAll()
ESP_FileSystem::FilesystemName
static const char * FilesystemName()
ESP_File::operator=
ESP_File & operator=(const ESP_File &other)
Definition: esp_filesystem.cpp:196
ESP_FileSystem::begin
static bool begin()
ESP_File::~ESP_File
~ESP_File()
Definition: esp_filesystem.cpp:103
ESP_File::name
const char * name() const
Definition: esp_filesystem.cpp:123
ESP_FILE_READ
#define ESP_FILE_READ
Definition: defines.h:120
ESP_FileSystem::usedBytes
static size_t usedBytes()
ESP_FileSystem::remove
static bool remove(const char *path)
ESP_FileSystem::totalBytes
static size_t totalBytes()
ESP_File::getLastWrite
time_t getLastWrite()
Definition: esp_filesystem.cpp:143
ESP_FileSystem::ESP_FileSystem
ESP_FileSystem()
Definition: esp_filesystem.cpp:35
ESP_File::isOpen
bool isOpen()
Definition: esp_filesystem.cpp:118
ESP_FileSystem::mkdir
static bool mkdir(const char *path)
ESP_File::filename
const char * filename() const
Definition: esp_filesystem.cpp:128
ESP_File::openNextFile
ESP_File openNextFile()
ESP_FileSystem::format
static bool format()
ESP_File
Definition: esp_filesystem.h:30
ESP_FileSystem::max_update_size
static size_t max_update_size()
Definition: esp_filesystem.cpp:60
ESP_FileSystem
Definition: esp_filesystem.h:64
ESP_FileSystem::rmdir
static bool rmdir(const char *path)
ESP_FileSystem::rename
static bool rename(const char *oldpath, const char *newpath)
ESP_File::read
int read()
Definition: esp_filesystem.cpp:172
ESP_FileSystem::freeBytes
static size_t freeBytes()
ESP_FileSystem::end
static void end()
ESP_File::write
size_t write(uint8_t i)
Definition: esp_filesystem.cpp:156
ESP_FileSystem::~ESP_FileSystem
~ESP_FileSystem()
Definition: esp_filesystem.cpp:40
ESP_File::size
size_t size()
Definition: esp_filesystem.cpp:138
ESP_File::ESP_File
ESP_File(void *handle=nullptr, bool isdir=false, bool iswritemode=false, const char *path=nullptr)
ESP_FileSystem::started
static bool started()
Definition: esp_filesystem.h:85
ESP_FileSystem::formatBytes
static String & formatBytes(uint64_t bytes)
Definition: esp_filesystem.cpp:45
ESP_File::available
int available()
Definition: esp_filesystem.cpp:148
ESP_FileSystem::exists
static bool exists(const char *path)
ESP_FileSystem::open
static ESP_File open(const char *path, uint8_t mode=ESP_FILE_READ)
ESP_File::flush
void flush()
Definition: esp_filesystem.cpp:188
ESP_File::isDirectory
bool isDirectory()
Definition: esp_filesystem.cpp:133