Namespaces | |
Debug | |
Error | |
FAT | |
FWFS | |
Gdb | |
Host | |
HYFS | |
Classes | |
class | DirectoryTemplate |
Directory stream class. More... | |
class | FileStream |
File stream class. More... | |
class | HtmlDirectoryTemplate |
Read-only stream access to directory listing with HTML output. More... | |
class | JsonDirectoryTemplate |
Read-only stream providing directory listing in JSON format. More... | |
struct | ACL |
struct | AttributeEnum |
Attribute information passed to enumeration callback. More... | |
struct | Compression |
A compression descriptor. More... | |
class | Directory |
Wrapper class for enumerating a directory. More... | |
struct | Extent |
Defines the location of a contiguous run of file data. More... | |
class | File |
Wraps up all file access methods. More... | |
class | FileCopier |
Class to manage copying of files and directories including attributes. More... | |
class | FileSystem |
Installable File System base class. More... | |
class | FsBase |
class | IFileSystem |
Installable File System base class. More... | |
struct | NameBuffer |
defines a 'safe' name buffer More... | |
struct | FileNameBuffer |
a quick'n'dirty name buffer with maximum path allocation More... | |
class | IProfiler |
Filesystems may optionally provide performance statistics. More... | |
class | Profiler |
struct | Stat |
File Status structure. More... | |
struct | NameStat |
version of Stat with integrated name buffer More... | |
struct | TimeStamp |
Manage IFS timestamps stored as an unsigned 32-bit value. More... | |
Typedefs | |
using | AttributeEnumCallback = Delegate< bool(AttributeEnum &e)> |
Return true to continue enumeration, false to stop. More... | |
using | ErrorCode = int |
using | FileAttributes = BitSet< uint8_t, FileAttribute, size_t(FileAttribute::MAX)> |
File attributes are stored as a bitmask. More... | |
using | DirHandle = struct ImplFileDir * |
using | OpenFlags = BitSet< uint8_t, OpenFlag, size_t(OpenFlag::MAX)> |
using | FileHandle = int16_t |
File handle. More... | |
using | FileID = uint32_t |
File identifier. More... | |
Enumerations | |
enum class | AttributeTag : uint16_t { XX , User = 16 } |
Identifies a specific attribute. More... | |
enum | ControlCode : uint16_t { FCNTL_GET_MD5_HASH = 1 , FCNTL_SET_VOLUME_LABEL = 2 , FCNTL_USER_BASE = 0x8000 } |
See IFS::IFileSystem::fcontrol More... | |
enum class | FileAttribute { XX , MAX } |
enum class | OpenFlag { XX , MAX } |
enum class | UserRole : uint8_t { XX , MAX } |
Functions | |||||||
String | getAclString (const IFS::ACL &acl) | ||||||
Return a brief textual representation for an ACL Suitable for inclusion in a file listing. More... | |||||||
AttributeTag | getUserAttributeTag (uint8_t value) | ||||||
size_t | getAttributeSize (AttributeTag tag) | ||||||
String | getFileAttributeString (FileAttributes attr) | ||||||
Get the string representation for the given set of file attributes suitable for inclusion in a file listing. More... | |||||||
FileSystem * | getDefaultFileSystem () | ||||||
Framework should implement this method. More... | |||||||
FileSystem * | createFirmwareFilesystem (Storage::Partition partition) | ||||||
Create a firmware filesystem. More... | |||||||
FileSystem * | createHybridFilesystem (Storage::Partition fwfsPartition, IFileSystem *flashFileSystem) | ||||||
Create a hybrid filesystem. More... | |||||||
FileSystem * | mountArchive (FileSystem &fs, const String &filename) | ||||||
Mount an FWFS archive. More... | |||||||
constexpr OpenFlags | operator| (OpenFlag a, OpenFlag b) | ||||||
time_t | fsGetTimeUTC () | ||||||
Get current timestamp in UTC. More... | |||||||
char | getChar (UserRole role) | ||||||
UserRole | getUserRole (char code, UserRole defaultRole) | ||||||
bool | isRootPath (const char *&path) | ||||||
Check if path is root directory. More... | |||||||
void | checkStat (Stat &stat) | ||||||
FileSystem * | createFatFilesystem (Storage::Partition partition) | ||||||
Create a FAT filesystem. More... | |||||||
Return compression corresponding to given string | |||||||
| |||||||
Compression::Type | getCompressionType (const char *str, Compression::Type defaultValue=Compression::Type::None) | ||||||
Compression::Type | getCompressionType (const String &str, Compression::Type defaultValue=Compression::Type::None) | ||||||
Return the access type value for the given string. | |||||||
| |||||||
UserRole | getUserRole (const char *str, UserRole defaultRole) | ||||||
UserRole | getUserRole (const String &str, UserRole defaultRole) | ||||||
Variables | |
constexpr ErrorCode | FS_OK = Error::Success |
Typedef Documentation
◆ AttributeEnumCallback
using IFS::AttributeEnumCallback = typedef Delegate<bool(AttributeEnum& e)> |
Return true to continue enumeration, false to stop.
◆ DirHandle
using IFS::DirHandle = typedef struct ImplFileDir* |
◆ FileAttributes
using IFS::FileAttributes = typedef BitSet<uint8_t, FileAttribute, size_t(FileAttribute::MAX)> |
File attributes are stored as a bitmask.
◆ FileHandle
using IFS::FileHandle = typedef int16_t |
File handle.
References an open file
◆ FileID
using IFS::FileID = typedef uint32_t |
◆ OpenFlags
using IFS::OpenFlags = typedef BitSet<uint8_t, OpenFlag, size_t(OpenFlag::MAX)> |
Enumeration Type Documentation
◆ AttributeTag
|
strong |
◆ ControlCode
enum IFS::ControlCode : uint16_t |
See IFS::IFileSystem::fcontrol
These are weakly typed as values may be defined elsewhere.
Enumerator | |
---|---|
FCNTL_GET_MD5_HASH | Get stored MD5 hash for file. FWFS calculates this when the filesystem image is built and can be used by applications to verify file integrity. On success, returns size of the hash itself (16) If the file is zero-length then Error::NotFound will be returned as the hash is not stored for empty files. |
FCNTL_SET_VOLUME_LABEL | Set volume label. |
FCNTL_USER_BASE | Start of user-defined codes. Codes before this are reserved for system use |
◆ FileAttribute
|
strong |
◆ OpenFlag
|
strong |
◆ UserRole
|
strong |
Function Documentation
◆ checkStat()
void IFS::checkStat | ( | Stat & | stat | ) |
◆ createFatFilesystem()
FileSystem* IFS::createFatFilesystem | ( | Storage::Partition | partition | ) |
Create a FAT filesystem.
- Parameters
-
partition
- Return values
-
FileSystem* constructed filesystem object
◆ createFirmwareFilesystem()
FileSystem* IFS::createFirmwareFilesystem | ( | Storage::Partition | partition | ) |
Create a firmware filesystem.
- Parameters
-
partition
- Return values
-
FileSystem* constructed filesystem object
◆ createHybridFilesystem()
FileSystem* IFS::createHybridFilesystem | ( | Storage::Partition | fwfsPartition, |
IFileSystem * | flashFileSystem | ||
) |
Create a hybrid filesystem.
- Parameters
-
fwfsPartition Base read-only filesystem partition flashFileSystem The filesystem to use for writing
- Return values
-
FileSystem* constructed filesystem object
◆ fsGetTimeUTC()
time_t IFS::fsGetTimeUTC | ( | ) |
Get current timestamp in UTC.
- Return values
-
time_t
- Note
- Filing systems must store timestamps in UTC Use this function; makes porting easier.
◆ getAclString()
◆ getAttributeSize()
size_t IFS::getAttributeSize | ( | AttributeTag | tag | ) |
◆ getChar()
char IFS::getChar | ( | UserRole | role | ) |
◆ getCompressionType() [1/2]
Compression::Type IFS::getCompressionType | ( | const char * | str, |
Compression::Type | defaultValue = Compression::Type::None |
||
) |
◆ getCompressionType() [2/2]
|
inline |
◆ getDefaultFileSystem()
FileSystem* IFS::getDefaultFileSystem | ( | ) |
Framework should implement this method.
◆ getFileAttributeString()
String IFS::getFileAttributeString | ( | FileAttributes | attr | ) |
Get the string representation for the given set of file attributes suitable for inclusion in a file listing.
- Parameters
-
attr
- Return values
-
String
◆ getUserAttributeTag()
|
inline |
◆ getUserRole() [1/3]
◆ getUserRole() [2/3]
◆ getUserRole() [3/3]
◆ isRootPath()
bool IFS::isRootPath | ( | const char *& | path | ) |
Check if path is root directory.
- Parameters
-
Path to check, set to nullptr if it's the root directory
- Return values
-
bool true if path is root directory
Paths equal to "/" or "" are empty and considered equivalent to nullptr. Methods or functions can use this macro to resolve these for simpler parsing.
◆ mountArchive()
FileSystem* IFS::mountArchive | ( | FileSystem & | fs, |
const String & | filename | ||
) |
Mount an FWFS archive.
- Parameters
-
fs Filesystem where file is located filename Name of archive file
- Return values
-
FileSystem* constructed filesystem object