distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
Littlefs1Directory.hpp
Go to the documentation of this file.
1 
12 #ifndef INCLUDE_DISTORTOS_FILESYSTEM_LITTLEFS1_LITTLEFS1DIRECTORY_HPP_
13 #define INCLUDE_DISTORTOS_FILESYSTEM_LITTLEFS1_LITTLEFS1DIRECTORY_HPP_
14 
16 
17 #include "lfs1.h"
18 
19 namespace distortos
20 {
21 
22 class Littlefs1FileSystem;
23 
31 {
32  friend class Littlefs1FileSystem;
33 
34 public:
35 
42  ~Littlefs1Directory() override;
43 
61  int close() override;
62 
77  std::pair<int, off_t> getPosition() override;
78 
94  void lock() override;
95 
114  int read(dirent& entry) override;
115 
129  int rewind() override;
130 
146  int seek(off_t position) override;
147 
158  void unlock() override;
159 
160 private:
161 
168  constexpr explicit Littlefs1Directory(Littlefs1FileSystem& fileSystem) :
169  directory_{},
170  fileSystem_{fileSystem},
171  opened_{}
172  {
173 
174  }
175 
188  int open(const char* path);
189 
191  lfs1_dir_t directory_;
192 
195 
197  bool opened_;
198 };
199 
200 } // namespace distortos
201 
202 #endif // INCLUDE_DISTORTOS_FILESYSTEM_LITTLEFS1_LITTLEFS1DIRECTORY_HPP_
bool opened_
true if directory is opened, false otherwise
Definition: Littlefs1Directory.hpp:197
Definition: Littlefs1Directory.hpp:30
Definition: dirent.h:34
int open(const char *path)
Opens directory.
Definition: Littlefs1Directory.cpp:118
int seek(off_t position) override
Moves position in the directory.
Definition: Littlefs1Directory.cpp:96
std::pair< int, off_t > getPosition() override
Returns current position in the directory.
Definition: Littlefs1Directory.cpp:47
Definition: Directory.hpp:28
Directory class header.
Top-level namespace of distortos project.
Definition: buttons.hpp:33
constexpr Littlefs1Directory(Littlefs1FileSystem &fileSystem)
Littlefs1Directory's constructor.
Definition: Littlefs1Directory.hpp:168
int close() override
Closes directory.
Definition: Littlefs1Directory.cpp:36
Definition: Littlefs1FileSystem.hpp:37
lfs1_dir_t directory_
littlefs-v1 directory
Definition: Littlefs1Directory.hpp:191
~Littlefs1Directory() override
Littlefs1Directory's destructor.
Definition: Littlefs1Directory.cpp:31
void unlock() override
Unlocks the directory which was previously locked by current thread.
Definition: Littlefs1Directory.cpp:109
void lock() override
Locks the directory for exclusive use by current thread.
Definition: Littlefs1Directory.cpp:60
Littlefs1FileSystem & fileSystem_
reference to owner file system
Definition: Littlefs1Directory.hpp:194
int rewind() override
Resets current position in the directory.
Definition: Littlefs1Directory.cpp:86
int read(dirent &entry) override
Reads next entry from directory.
Definition: Littlefs1Directory.cpp:65