Commit 989790e7 authored by Max Kellermann's avatar Max Kellermann

client/Response: add method WriteBinary()

Move code from read_stream_art().
parent 831bc711
......@@ -56,6 +56,14 @@ Response::Format(const char *fmt, ...) noexcept
return success;
}
bool
Response::WriteBinary(ConstBuffer<void> payload) noexcept
{
return Format("binary: %zu\n", payload.size) &&
Write(payload.data, payload.size) &&
Write("\n");
}
void
Response::Error(enum ack code, const char *msg) noexcept
{
......
......@@ -26,6 +26,7 @@
#include <stddef.h>
#include <stdarg.h>
template<typename T> struct ConstBuffer;
class Client;
class TagMask;
......@@ -76,6 +77,14 @@ public:
bool FormatV(const char *fmt, va_list args) noexcept;
bool Format(const char *fmt, ...) noexcept;
/**
* Write a binary chunk; this writes the "binary" line, the
* given chunk and the trailing newline.
*
* @return true on success
*/
bool WriteBinary(ConstBuffer<void> payload) noexcept;
void Error(enum ack code, const char *msg) noexcept;
void FormatError(enum ack code, const char *fmt, ...) noexcept;
};
......
......@@ -296,14 +296,8 @@ read_stream_art(Response &r, const char *uri, size_t offset)
read_size = is->Read(lock, &buffer, CHUNK_SIZE);
}
r.Format("size: %" PRIoffset "\n"
"binary: %u\n",
art_file_size,
read_size
);
r.Write(buffer, read_size);
r.Write("\n");
r.Format("size: %" PRIoffset "\n", art_file_size);
r.WriteBinary({buffer, read_size});
return CommandResult::OK;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment