roo_io
API Documentation for roo_io
Loading...
Searching...
No Matches
file_input_stream.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef ARDUINO
4
5#include <FS.h>
6
9
10namespace roo_io {
11
12class ArduinoFileInputStream : public MultipassInputStream {
13 public:
15
16 // Use only if you know that the filesystem is and will remain mounted.
18
19 ArduinoFileInputStream(std::shared_ptr<MountImpl> mount, fs::File file);
20
21 size_t read(byte* buf, size_t count) override;
22
23 void seek(uint64_t offset) override;
24
25 void skip(uint64_t count) override;
26
27 uint64_t position() const override { return file_.position(); }
28
29 uint64_t size() override { return file_.size(); }
30
31 bool isOpen() const override { return file_.operator bool(); }
32
33 void close() override;
34
35 Status status() const override { return status_; }
36
37 private:
38 std::shared_ptr<MountImpl> mount_;
39 fs::File file_;
40 Status status_;
41};
42
43} // namespace roo_io
44
45#endif // ARDUINO
Definition byte.h:6
roo::basic_string_view< CharT, Traits > basic_string_view
Definition string_view.h:8
size_t count
Definition compare.h:45
Status
Definition status.h:7