event/SocketMonitor: refactor to SocketEvent

Similar to commits 1686f4e857 and
30a5dd267b
This commit is contained in:
Max Kellermann
2020-10-14 14:24:16 +02:00
parent 4d68a12f03
commit 5a4055fb08
26 changed files with 282 additions and 261 deletions

View File

@@ -35,7 +35,7 @@ FullyBufferedSocket::DirectWrite(const void *data, size_t length) noexcept
return 0;
idle_event.Cancel();
BufferedSocket::Cancel();
event.Cancel();
if (IsSocketErrorClosed(code))
OnSocketClosed();
@@ -54,7 +54,7 @@ FullyBufferedSocket::Flush() noexcept
const auto data = output.Read();
if (data.empty()) {
idle_event.Cancel();
CancelWrite();
event.CancelWrite();
return true;
}
@@ -66,7 +66,7 @@ FullyBufferedSocket::Flush() noexcept
if (output.empty()) {
idle_event.Cancel();
CancelWrite();
event.CancelWrite();
}
return true;
@@ -92,23 +92,23 @@ FullyBufferedSocket::Write(const void *data, size_t length) noexcept
return true;
}
bool
void
FullyBufferedSocket::OnSocketReady(unsigned flags) noexcept
{
if (flags & WRITE) {
if (flags & SocketEvent::WRITE) {
assert(!output.empty());
assert(!idle_event.IsActive());
if (!Flush())
return false;
return;
}
return BufferedSocket::OnSocketReady(flags);
BufferedSocket::OnSocketReady(flags);
}
void
FullyBufferedSocket::OnIdle() noexcept
{
if (Flush() && !output.empty())
ScheduleWrite();
event.ScheduleWrite();
}