Mercurial > irccd
view libirccd-js/irccd/js/logger_jsapi.cpp @ 628:27587ff92a64
Misc: update copyrights
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 09 Jan 2018 14:06:40 +0100 |
parents | e531f04507aa |
children | 23fd8bad4006 |
line wrap: on
line source
/* * logger_jsapi.cpp -- Irccd.Logger API * * Copyright (c) 2013-2018 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 <irccd/daemon/logger.hpp> #include <irccd/daemon/irccd.hpp> #include "irccd_jsapi.hpp" #include "js_plugin.hpp" #include "logger_jsapi.hpp" #include "plugin_jsapi.hpp" namespace irccd { namespace { duk_ret_t print(duk_context* ctx, std::ostream &out) { out << "plugin " << dukx_get_plugin(ctx)->name() << ": " << duk_require_string(ctx, 0) << std::endl; return 0; } /* * Function: Irccd.Logger.info(message) * -------------------------------------------------------- * * Write a verbose message. * * Arguments: * - message, the message. */ duk_ret_t info(duk_context* ctx) { return print(ctx, dukx_get_irccd(ctx).log().info()); } /* * Function: irccd.Logger.warning(message) * -------------------------------------------------------- * * Write a warning message. * * Arguments: * - message, the warning. */ duk_ret_t warning(duk_context* ctx) { return print(ctx, dukx_get_irccd(ctx).log().warning()); } /* * Function: Logger.debug(message) * -------------------------------------------------------- * * Write a debug message, only shown if irccd is compiled in debug. * * Arguments: * - message, the message. */ duk_ret_t debug(duk_context* ctx) { return print(ctx, dukx_get_irccd(ctx).log().debug()); } const duk_function_list_entry functions[] = { { "info", info, 1 }, { "warning", warning, 1 }, { "debug", debug, 1 }, { nullptr, nullptr, 0 } }; } // !namespace std::string logger_jsapi::name() const { return "Irccd.Logger"; } void logger_jsapi::load(irccd&, std::shared_ptr<js_plugin> plugin) { dukx_stack_assert sa(plugin->context()); duk_get_global_string(plugin->context(), "Irccd"); duk_push_object(plugin->context()); duk_put_function_list(plugin->context(), -1, functions); duk_put_prop_string(plugin->context(), -2, "Logger"); duk_pop(plugin->context()); } } // !irccd