1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:58:11 +00:00

Add metadata to CoreInode.

This commit is contained in:
Andreas Kling 2018-11-13 13:32:16 +01:00
parent 10c470e95f
commit 26852a8363
5 changed files with 42 additions and 25 deletions

View file

@ -23,11 +23,13 @@ class CoreInode : public Retainable<CoreInode> {
public:
virtual ~CoreInode();
FileSystem& fs() const { return m_fs; }
FileSystem& fs() { return m_fs; }
const FileSystem& fs() const { return m_fs; }
unsigned fsid() const;
unsigned index() const { return m_index; }
InodeIdentifier identifier() const { return { fsid(), index() }; }
const InodeMetadata& metadata() const { if (!m_metadata.isValid()) { populate_metadata(); } return m_metadata; }
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) = 0;
@ -38,6 +40,9 @@ protected:
{
}
virtual void populate_metadata() const = 0;
mutable InodeMetadata m_metadata;
private:
FileSystem& m_fs;
unsigned m_index { 0 };