|
| ArchiveStream (FileSystem *fileSystem, const VolumeInfo &volumeInfo, const String &rootPath=nullptr, Flags flags=0) |
| Construct an archive stream. More...
|
|
| ~ArchiveStream () |
|
virtual bool | filterStat (const Stat &stat) |
| Override this method to filter items. More...
|
|
void | onFilterStat (FilterStatCallback callback) |
|
virtual IBlockEncoder * | createEncoder (FileInfo &file) |
| Override this method to implement custom encoding such as compression or encryption. More...
|
|
void | onCreateEncoder (CreateEncoderCallback callback) |
|
const String & | getCurrentPath () const |
| Get the current path being processed. More...
|
|
uint16_t | readMemoryBlock (char *data, int bufSize) override |
| Read a block of memory. More...
|
|
int | seekFrom (int offset, SeekOrigin origin) override |
| Change position in stream. More...
|
|
bool | isFinished () override |
| Check if all data has been read. More...
|
|
MimeType | getMimeType () const override |
| Get MIME type for stream content. More...
|
|
bool | isSuccess () const |
|
void | reset () |
| Reset stream to beginning. More...
|
|
| FsBase (IFileSystem *filesys=nullptr) |
|
bool | isValid () const |
|
int | getLastError () |
| determine if an error occurred during operation More...
|
|
String | getErrorString (int err) const |
|
String | getLastErrorString () const |
|
FileSystem * | getFileSystem () const |
|
virtual StreamType | getStreamType () const |
| Get the stream type. More...
|
|
virtual bool | isValid () const |
| Determine if the stream object contains valid data. More...
|
|
size_t | readBytes (char *buffer, size_t length) override |
| Read chars from stream into buffer. More...
|
|
int | read () override |
| Read one character and moves the stream pointer. More...
|
|
int | peek () override |
| Read a character without advancing the stream pointer. More...
|
|
virtual bool | seek (int len) |
| Move read cursor. More...
|
|
int | available () override |
| Return the total length of the stream. More...
|
|
size_t | write (uint8_t charToWrite) override |
| From Stream class: We don't write using this stream. More...
|
|
void | flush () override |
|
virtual String | id () const |
| Returns unique id of the resource. More...
|
|
virtual String | getName () const |
| Returns name of the resource. More...
|
|
String | readString (size_t maxLen) override |
| Overrides Stream method for more efficient reading. More...
|
|
virtual bool | moveString (String &s) |
| Memory-based streams may be able to move content into a String. More...
|
|
virtual size_t | readBytes (char *buffer, size_t length) |
| Read chars from stream into buffer. More...
|
|
size_t | readBytes (uint8_t *buffer, size_t length) |
|
| Stream () |
|
void | setTimeout (unsigned long timeout) |
| Set maximum milliseconds to wait for stream data, default is 1 second. More...
|
|
bool | find (const char *target) |
| Read data from the stream until the target string is found. More...
|
|
bool | find (const char *target, size_t length) |
| Read data from the stream until the target string of given length is found. More...
|
|
bool | findUntil (const char *target, const char *terminator) |
| As find() but search ends if the terminator string is found. More...
|
|
bool | findUntil (const char *target, size_t targetLen, const char *terminate, size_t termLen) |
| As findUntil(const char*, const char*) but search ends if the terminate string is found. More...
|
|
long | parseInt () |
| Returns the first valid (long) integer value from the current position. More...
|
|
float | parseFloat () |
| float version of parseInt More...
|
|
size_t | readBytes (uint8_t *buffer, size_t length) |
|
size_t | readBytesUntil (char terminator, char *buffer, size_t length) |
| As readBytes() with terminator character. More...
|
|
String | readStringUntil (char terminator) |
|
virtual int | indexOf (char c) |
|
| Print () |
|
| Print (const Print &)=delete |
|
| Print (Print &&)=delete |
|
virtual | ~Print () |
|
Print & | operator= (const Print &)=delete |
|
Print & | operator= (Print &&)=delete |
|
int | getWriteError () |
| Gets last error. More...
|
|
void | clearWriteError () |
| Clears the last write error. More...
|
|
size_t | write (const char *str) |
| Writes a c-string to output stream. More...
|
|
virtual size_t | write (const uint8_t *buffer, size_t size) |
| Writes characters from a buffer to output stream. More...
|
|
size_t | write (const char *buffer, size_t size) |
| Writes characters from a buffer to output stream. More...
|
|
size_t | print (char c) |
| Prints a single character to output stream. More...
|
|
size_t | print (const char str[]) |
| Prints a c-string to output stream. More...
|
|
size_t | print (double num, int digits=2) |
| Print a floating-point number to output stream. More...
|
|
template<typename T > |
std::enable_if< has_printTo< T >::value, size_t >::type | print (const T &obj) |
| Prints a Printable object to output stream. More...
|
|
size_t | print (const String &s) |
| Prints a String to output stream. More...
|
|
template<typename E > |
std::enable_if< std::is_enum< E >::value &&!std::is_convertible< E, int >::value, size_t >::type | print (E value) |
| enums can be printed as strings provided they have a toString(E) implementation. More...
|
|
size_t | println () |
| Prints a newline to output stream. More...
|
|
template<typename... Args> |
size_t | println (const Args &... args) |
| Print value plus newline to output stream. More...
|
|
size_t | printf (const char *fmt,...) |
| Prints a formatted c-string to output stream. More...
|
|
size_t | print (unsigned long num, uint8_t base=DEC) |
|
template<typename... Args> |
size_t | print (unsigned long num, Args... args) |
|
template<typename... Args> |
size_t | print (const unsigned long long &num, Args... args) |
|
size_t | print (long num, uint8_t base=DEC) |
|
template<typename... Args> |
size_t | print (long num, Args... args) |
|
template<typename... Args> |
size_t | print (const long long &num, Args... args) |
|
template<typename... Args> |
size_t | print (unsigned int num, Args... args) |
|
template<typename... Args> |
size_t | print (unsigned char num, Args... args) |
|
template<typename... Args> |
size_t | print (int num, Args... args) |
|
Supports direct streaming into FWFS archive format.
Data needs to be enumerated so that all child files and directories are written first. As this happens, the parent directory is built as a list of object references.
The size of all child objects must be known before the containing object is written out. It should be sufficient to buffer all of these into an internal stream. This would only be a problem if large child objects are used. This is possible, but the builder avoids doing it and we should too.
Top-level object is a Volume, below that is the root Directory. That means objects are written in the order: child files/directories Root directory Volume End marker