LibCore: Make IODevice::can_read_line() const

This also makes LibHTTP's Job::can_read_line() const, as IODevice was
keeping that from being const.
Fixes #2219
This commit is contained in:
AnotherTest 2020-05-15 10:45:09 +04:30 committed by Andreas Kling
parent 5386508119
commit 3485613f4a
Notes: sideshowbarker 2024-07-19 06:38:54 +09:00
7 changed files with 15 additions and 17 deletions

View File

@ -121,7 +121,7 @@ bool IODevice::can_read_from_fd() const
return FD_ISSET(m_fd, &rfds);
}
bool IODevice::can_read_line()
bool IODevice::can_read_line() const
{
if (m_eof && !m_buffered_data.is_empty())
return true;
@ -206,7 +206,7 @@ ByteBuffer IODevice::read_line(size_t max_size)
return {};
}
bool IODevice::populate_read_buffer()
bool IODevice::populate_read_buffer() const
{
if (m_fd < 0)
return false;

View File

@ -65,8 +65,7 @@ public:
bool write(const u8*, int size);
bool write(const StringView&);
// FIXME: I would like this to be const but currently it needs to call populate_read_buffer().
bool can_read_line();
bool can_read_line() const;
bool can_read() const;
@ -88,20 +87,20 @@ protected:
void set_fd(int);
void set_mode(OpenMode mode) { m_mode = mode; }
void set_error(int error) { m_error = error; }
void set_eof(bool eof) { m_eof = eof; }
void set_error(int error) const { m_error = error; }
void set_eof(bool eof) const { m_eof = eof; }
virtual void did_update_fd(int) {}
virtual void did_update_fd(int) { }
private:
bool populate_read_buffer();
bool populate_read_buffer() const;
bool can_read_from_fd() const;
int m_fd { -1 };
int m_error { 0 };
bool m_eof { false };
OpenMode m_mode { NotOpen };
Vector<u8> m_buffered_data;
mutable int m_error { 0 };
mutable bool m_eof { false };
mutable Vector<u8> m_buffered_data;
};
}

View File

@ -73,7 +73,7 @@ void HttpJob::register_on_ready_to_write(Function<void()> callback)
callback();
}
bool HttpJob::can_read_line()
bool HttpJob::can_read_line() const
{
return m_socket->can_read_line();
}

View File

@ -53,7 +53,7 @@ public:
protected:
virtual void register_on_ready_to_read(Function<void()>) override;
virtual void register_on_ready_to_write(Function<void()>) override;
virtual bool can_read_line() override;
virtual bool can_read_line() const override;
virtual ByteBuffer read_line(size_t) override;
virtual bool can_read() const override;
virtual ByteBuffer receive(size_t) override;

View File

@ -104,7 +104,7 @@ void HttpsJob::register_on_ready_to_write(Function<void()> callback)
};
}
bool HttpsJob::can_read_line()
bool HttpsJob::can_read_line() const
{
return m_socket->can_read_line();
}

View File

@ -53,7 +53,7 @@ public:
protected:
virtual void register_on_ready_to_read(Function<void()>) override;
virtual void register_on_ready_to_write(Function<void()>) override;
virtual bool can_read_line() override;
virtual bool can_read_line() const override;
virtual ByteBuffer read_line(size_t) override;
virtual bool can_read() const override;
virtual ByteBuffer receive(size_t) override;

View File

@ -51,8 +51,7 @@ protected:
void on_socket_connected();
virtual void register_on_ready_to_read(Function<void()>) = 0;
virtual void register_on_ready_to_write(Function<void()>) = 0;
// FIXME: I want const but Core::IODevice::can_read_line populates a cache with this
virtual bool can_read_line() = 0;
virtual bool can_read_line() const = 0;
virtual ByteBuffer read_line(size_t) = 0;
virtual bool can_read() const = 0;
virtual ByteBuffer receive(size_t) = 0;