24 #include "../Access.h" 25 #include "../FileAttributes.h" 26 #include "../Compression.h" 37 static constexpr uint32_t
Magic{0xE3457A77};
50 uint32_t originalSize;
63 #define FILEMETA_SIZE 16 64 static_assert(
sizeof(FileMeta) ==
FILEMETA_SIZE,
"FileMeta wrong size");
66 #if SPIFFS_OBJ_META_LEN >= FILEMETA_SIZE 67 #define SPIFFS_STORE_META 68 #define SPIFFS_USER_METALEN (SPIFFS_OBJ_META_LEN - FILEMETA_SIZE) 70 #define SPIFFS_USER_METALEN 0 85 memset(user, 0xFF,
sizeof(user));
88 template <
typename T>
void assign(
const T& data)
90 static_assert(
sizeof(data) == offsetof(
SpiffsMetaBuffer, flags),
"SPIFFS metadata assign() size incorrect");
91 memcpy(reinterpret_cast<void*>(
this), data,
sizeof(data));
96 flags[Flag::dirty] =
true;
110 if(meta.
acl != newAcl) {
112 flags[Flag::dirty] =
true;
118 if(meta.
mtime != t) {
120 flags[Flag::dirty] =
true;
129 meta.
attr[FileAttribute::Compressed] = (c.
type != Compression::Type::None);
130 flags[Flag::dirty] =
true;
136 if(meta.
attr != newAttr) {
138 flags[Flag::dirty] =
true;
Type
Definition: Compression.h:39
FileAttributes attr
Definition: Stat.h:57
Compression compression
Definition: Stat.h:56
uint32_t originalSize
Definition: Compression.h:46
ACL acl
Access Control.
Definition: Stat.h:58
Definition: DirectoryTemplate.h:36
Manage IFS timestamps stored as an unsigned 32-bit value.
Definition: TimeStamp.h:35
File Status structure.
Definition: Stat.h:51
time_t fsGetTimeUTC()
Get current timestamp in UTC.
UserRole readAccess
Definition: Access.h:36
Type type
Definition: Compression.h:45
TimeStamp mtime
File modification time.
Definition: Stat.h:59
UserRole writeAccess
Definition: Access.h:37
A compression descriptor.
Definition: Compression.h:38