Beispiel #1
0
std::vector<int> mastermind_t::get_symmetric_groups(int group) {
	std::vector<int> result = get_couple_by_group(group);

	if (result.empty()) {
		result = {group};
	}

	if (m_data->m_logger->verbosity() >= cocaine::logging::debug) {
		std::ostringstream oss;
		oss
			<< "libmastermind: get_symmetric_groups: request={group=" << group
			<< "}; response={"
			<< "couple=[";
		{
			auto &&groups = result;
			for (auto beg = groups.begin(), it = beg, end = groups.end(); it != end; ++it) {
				if (beg != it) oss << ", ";
				oss << *it;
			}
		}
		oss << "]};";

		auto msg = oss.str();
		COCAINE_LOG_DEBUG(m_data->m_logger, "%s", msg.c_str());
	}

	return result;
}
Beispiel #2
0
spent_time_printer_t::spent_time_printer_t(const std::string &handler_name, std::shared_ptr<cocaine::framework::logger_t> &logger)
: m_handler_name(handler_name)
, m_logger(logger)
, m_beg_time(std::chrono::system_clock::now())
{
	COCAINE_LOG_DEBUG(m_logger, "libmastermind: handling \'%s\'", m_handler_name.c_str());
}
Beispiel #3
0
    void
    operator()(Deferred& deferred, int code, const std::string& data) const {
        if (log) {
            COCAINE_LOG_DEBUG(log, "Search request completed [{}]", code);
        }

        rapidjson::Document root;
        root.Parse<0>(data.c_str());
        if (root.HasParseError()) {
            deferred.abort(asio::error::operation_aborted, cocaine::format("parsing failed - {}", root.GetParseError()));
            return;
        }

        if (code == HTTP_OK) {
            if (root.HasMember("hits")) {
                const rapidjson::Value &hits = root["hits"];
                rapidjson::GenericStringBuffer<rapidjson::UTF8<>> buffer;
                rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<>>> writer(buffer);
                hits["hits"].Accept(writer);
                const int total = hits["total"].GetInt();
                deferred.write(std::make_tuple(true, total, std::string(buffer.GetString())));
            } else {
                deferred.write(std::make_tuple(false, 0, std::string()));
            }
        } else {
            std::string reason = cocaine::format("{}[{}]", root["error"].GetString(), code);
            deferred.write(std::make_tuple(false, 0, reason));
        }
    }
Beispiel #4
0
    void
    operator()(Deferred &deferred, int code, const std::string &data) const {
        UNUSED(data);
        if (log)
            COCAINE_LOG_DEBUG(log, "Delete request completed [%d]", code);

        deferred.write(code == HTTP_OK || code == HTTP_ACCEPTED);
    }