aboutsummaryrefslogtreecommitdiff
path: root/src/event/BufferedSocket.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-30 10:36:47 +0100
committerMax Kellermann <max@duempel.org>2013-01-30 11:03:44 +0100
commita291415326f87afe5b42a89e9a90029b876895f2 (patch)
tree0ecd6f1e42a443ed5c96457682af3cafc39bc16c /src/event/BufferedSocket.cxx
parent4ad7456428913f5232768367f2c0694bcb4540bb (diff)
event/BufferedSocket: move output buffer to FullyBufferedSocket
BufferedSocket has just an input buffer, and FullyBufferedSocket adds the output buffer.
Diffstat (limited to 'src/event/BufferedSocket.cxx')
-rw-r--r--src/event/BufferedSocket.cxx90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/event/BufferedSocket.cxx b/src/event/BufferedSocket.cxx
index dec60b5f..05e70344 100644
--- a/src/event/BufferedSocket.cxx
+++ b/src/event/BufferedSocket.cxx
@@ -33,26 +33,6 @@ BufferedSocket::~BufferedSocket()
}
BufferedSocket::ssize_t
-BufferedSocket::DirectWrite(const void *data, size_t length)
-{
- const auto nbytes = SocketMonitor::Write((const char *)data, length);
- if (gcc_unlikely(nbytes < 0)) {
- const auto code = GetSocketError();
- if (IsSocketErrorAgain(code))
- return 0;
-
- Cancel();
-
- if (IsSocketErrorClosed(code))
- OnSocketClosed();
- else
- OnSocketError(NewSocketError(code));
- }
-
- return nbytes;
-}
-
-BufferedSocket::ssize_t
BufferedSocket::DirectRead(void *data, size_t length)
{
const auto nbytes = SocketMonitor::Read((char *)data, length);
@@ -76,30 +56,6 @@ BufferedSocket::DirectRead(void *data, size_t length)
}
bool
-BufferedSocket::WriteFromBuffer()
-{
- assert(IsDefined());
-
- size_t length;
- const void *data = output.Read(&length);
- if (data == nullptr) {
- CancelWrite();
- return true;
- }
-
- auto nbytes = DirectWrite(data, length);
- if (gcc_unlikely(nbytes <= 0))
- return nbytes == 0;
-
- output.Consume(nbytes);
-
- if (output.IsEmpty())
- CancelWrite();
-
- return true;
-}
-
-bool
BufferedSocket::ReadToBuffer()
{
assert(IsDefined());
@@ -119,38 +75,6 @@ BufferedSocket::ReadToBuffer()
}
bool
-BufferedSocket::Write(const void *data, size_t length)
-{
- assert(IsDefined());
-
-#if 0
- /* TODO: disabled because this would add overhead on some callers (the ones that often), but it may be useful */
-
- if (output.IsEmpty()) {
- /* try to write it directly first */
- const auto nbytes = DirectWrite(data, length);
- if (gcc_likely(nbytes > 0)) {
- data = (const uint8_t *)data + nbytes;
- length -= nbytes;
- if (length == 0)
- return true;
- } else if (nbytes < 0)
- return false;
- }
-#endif
-
- if (!output.Append(data, length)) {
- // TODO
- OnSocketError(g_error_new_literal(g_quark_from_static_string("buffered_socket"),
- 0, "Output buffer is full"));
- return false;
- }
-
- ScheduleWrite();
- return true;
-}
-
-bool
BufferedSocket::ResumeInput()
{
assert(IsDefined());
@@ -220,20 +144,6 @@ BufferedSocket::OnSocketReady(unsigned flags)
if (input == nullptr || !fifo_buffer_is_full(input))
ScheduleRead();
-
- /* just in case the OnSocketInput() method has added
- data to the output buffer: try to send it now
- instead of waiting for the next event loop
- iteration */
- if (!output.IsEmpty())
- flags |= WRITE;
- }
-
- if (flags & WRITE) {
- assert(!output.IsEmpty());
-
- if (!WriteFromBuffer())
- return false;
}
return true;