view lib/irccd/cmd-server-list.cpp @ 95:1125d90b3b44

Misc: switch to .hpp, #477
author David Demelier <markand@malikania.fr>
date Wed, 20 Apr 2016 19:45:00 +0200
parents 969f30acfb0e
children 1ed760f6e0c6
line wrap: on
line source

/*
 * cmd-server-list.cpp -- implementation of server-list transport command
 *
 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <iostream>

#include "cmd-server-list.hpp"
#include "irccd.hpp"

namespace irccd {

namespace command {

ServerList::ServerList()
	: RemoteCommand("server-list", "Server")
{
}

std::string ServerList::help() const
{
	return "";
}

json::Value ServerList::exec(Irccd &irccd, const json::Value &) const
{
	auto json = json::object({});
	auto list = json::array({});

	for (const auto &pair : irccd.servers())
		list.append(pair.first);

	json.insert("list", std::move(list));

	return json;
}

void ServerList::result(Irccdctl &, const json::Value &response) const
{
	for (const auto &n : response.valueOr("list", json::Type::Array, json::array({})))
		std::cout << n.toString() << std::endl;
}

} // !command

} // !irccd