1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:57:44 +00:00

Kernel: Make File's can_read/can_write take a const FileDescription&

Asking a File if we could possibly read or write it will never mutate
the asking FileDescription&, so it should be const.
This commit is contained in:
Andreas Kling 2019-11-04 14:03:14 +01:00
parent e8fee92357
commit 1b2ef8582c
47 changed files with 97 additions and 91 deletions

View file

@ -83,12 +83,12 @@ void FIFO::detach(Direction direction)
}
}
bool FIFO::can_read(FileDescription&) const
bool FIFO::can_read(const FileDescription&) const
{
return !m_buffer.is_empty() || !m_writers;
}
bool FIFO::can_write(FileDescription&) const
bool FIFO::can_write(const FileDescription&) const
{
return m_buffer.bytes_in_write_buffer() < 4096 || !m_readers;
}

View file

@ -30,8 +30,8 @@ private:
// ^File
virtual ssize_t write(FileDescription&, const u8*, ssize_t) override;
virtual ssize_t read(FileDescription&, u8*, ssize_t) override;
virtual bool can_read(FileDescription&) const override;
virtual bool can_write(FileDescription&) const override;
virtual bool can_read(const FileDescription&) const override;
virtual bool can_write(const FileDescription&) const override;
virtual String absolute_path(const FileDescription&) const override;
virtual const char* class_name() const override { return "FIFO"; }
virtual bool is_fifo() const override { return true; }

View file

@ -46,8 +46,8 @@ public:
virtual KResultOr<NonnullRefPtr<FileDescription>> open(int options);
virtual void close();
virtual bool can_read(FileDescription&) const = 0;
virtual bool can_write(FileDescription&) const = 0;
virtual bool can_read(const FileDescription&) const = 0;
virtual bool can_write(const FileDescription&) const = 0;
virtual ssize_t read(FileDescription&, u8*, ssize_t) = 0;
virtual ssize_t write(FileDescription&, const u8*, ssize_t) = 0;

View file

@ -121,14 +121,12 @@ ssize_t FileDescription::write(const u8* data, ssize_t size)
bool FileDescription::can_write() const
{
// FIXME: Remove this const_cast.
return m_file->can_write(const_cast<FileDescription&>(*this));
return m_file->can_write(*this);
}
bool FileDescription::can_read() const
{
// FIXME: Remove this const_cast.
return m_file->can_read(const_cast<FileDescription&>(*this));
return m_file->can_read(*this);
}
ByteBuffer FileDescription::read_entire_file()

View file

@ -16,8 +16,8 @@ public:
const Inode& inode() const { return *m_inode; }
Inode& inode() { return *m_inode; }
virtual bool can_read(FileDescription&) const override { return true; }
virtual bool can_write(FileDescription&) const override { return true; }
virtual bool can_read(const FileDescription&) const override { return true; }
virtual bool can_write(const FileDescription&) const override { return true; }
virtual ssize_t read(FileDescription&, u8*, ssize_t) override;
virtual ssize_t write(FileDescription&, const u8*, ssize_t) override;

View file

@ -18,12 +18,12 @@ InodeWatcher::~InodeWatcher()
safe_inode->unregister_watcher({}, *this);
}
bool InodeWatcher::can_read(FileDescription&) const
bool InodeWatcher::can_read(const FileDescription&) const
{
return !m_queue.is_empty() || !m_inode;
}
bool InodeWatcher::can_write(FileDescription&) const
bool InodeWatcher::can_write(const FileDescription&) const
{
return true;
}

View file

@ -21,8 +21,8 @@ public:
Type type { Type::Invalid };
};
virtual bool can_read(FileDescription&) const override;
virtual bool can_write(FileDescription&) const override;
virtual bool can_read(const FileDescription&) const override;
virtual bool can_write(const FileDescription&) const override;
virtual ssize_t read(FileDescription&, u8*, ssize_t) override;
virtual ssize_t write(FileDescription&, const u8*, ssize_t) override;
virtual String absolute_path(const FileDescription&) const override;

View file

@ -24,8 +24,8 @@ public:
private:
// ^File
virtual bool can_read(FileDescription&) const override { return true; }
virtual bool can_write(FileDescription&) const override { return true; }
virtual bool can_read(const FileDescription&) const override { return true; }
virtual bool can_write(const FileDescription&) const override { return true; }
virtual int read(FileDescription&, u8*, int) override;
virtual int write(FileDescription&, const u8*, int) override;
virtual String absolute_path(const FileDescription&) const override;