client/Response: new Client wrapper class for writing responses

This commit is contained in:
Max Kellermann
2015-08-06 22:10:25 +02:00
parent b1480167be
commit 7652a2986b
49 changed files with 1068 additions and 780 deletions

View File

@@ -21,35 +21,35 @@
#include "DecoderPrint.hxx"
#include "DecoderList.hxx"
#include "DecoderPlugin.hxx"
#include "client/Client.hxx"
#include "client/Response.hxx"
#include <functional>
#include <assert.h>
static void
decoder_plugin_print(Client &client,
decoder_plugin_print(Response &r,
const DecoderPlugin &plugin)
{
const char *const*p;
assert(plugin.name != nullptr);
client_printf(client, "plugin: %s\n", plugin.name);
r.Format("plugin: %s\n", plugin.name);
if (plugin.suffixes != nullptr)
for (p = plugin.suffixes; *p != nullptr; ++p)
client_printf(client, "suffix: %s\n", *p);
r.Format("suffix: %s\n", *p);
if (plugin.mime_types != nullptr)
for (p = plugin.mime_types; *p != nullptr; ++p)
client_printf(client, "mime_type: %s\n", *p);
r.Format("mime_type: %s\n", *p);
}
void
decoder_list_print(Client &client)
decoder_list_print(Response &r)
{
using namespace std::placeholders;
const auto f = std::bind(decoder_plugin_print, std::ref(client), _1);
const auto f = std::bind(decoder_plugin_print, std::ref(r), _1);
decoder_plugins_for_each_enabled(f);
}

View File

@@ -20,9 +20,9 @@
#ifndef MPD_DECODER_PRINT_HXX
#define MPD_DECODER_PRINT_HXX
class Client;
class Response;
void
decoder_list_print(Client &client);
decoder_list_print(Response &r);
#endif