Ejemplo n.º 1
0
static inline void make_json(buffer &json, const std::string &keys, const T& val, const Types& ...values )
{
    std::string::size_type pos = keys.find(',');

    type::json_traits<T>::append(json, keys.substr(0, pos).c_str() , val);

    make_json(json, keys.substr(pos+1, keys.length()-1 ).c_str() ,values...);
}
Ejemplo n.º 2
0
static inline void make_json(const bool &pretty, const unsigned &indent, unsigned &level,
                             buffer &json, const std::string &keys, const T& val, const Types& ...values)
{
    std::string::size_type pos = keys.find(',');

    if(pretty)
    {
        json.append("\n", 1);
        json.append(' ', indent * level);
    }
    type::json_traits<T>::append(json, keys.substr(0, pos).c_str() , val, pretty, indent, level);

    make_json(pretty, indent, level, json, keys.substr(pos+1, keys.length()-1 ).c_str() ,values...);
}
Ejemplo n.º 3
0
void post_json(void) {
	struct httpd_ws_state *s;

	make_json();

	//PRINTF("JSON data: %s of size: %d\n",json,strlen(json));
	//PRINTF("URL: %s\n",url);

	s = httpd_ws_request(HTTPD_WS_POST, IP, HOST, PORT, url, http_content_type_json, strlen(json), send_json);
	if (s==NULL) {
		PRINTF("httpd_ws_request returned NULL\n");
	} else {
		PRINTF(s->outbuf);
	}
}
Ejemplo n.º 4
0
const ConfigValue
FRTConfigResponseV3::readConfigValue() const
{
    vespalib::string md5(_data->get()[RESPONSE_CONFIG_MD5].asString().make_string());
    CompressionInfo info;
    info.deserialize(_data->get()[RESPONSE_COMPRESSION_INFO]);
    Slime * rawData = new Slime();
    SlimePtr payloadData(rawData);
    DecompressedData data(decompress(((*_returnValues)[1]._data._buf), ((*_returnValues)[1]._data._len), info.compressionType, info.uncompressedSize));
    if (data.memRef.size > 0) {
        size_t consumedSize = JsonFormat::decode(data.memRef, *rawData);
        if (consumedSize == 0) {
            std::string json(make_json(*payloadData, true));
            LOG(error, "Error decoding JSON. Consumed size: %lu, uncompressed size: %u, compression type: %s, assumed uncompressed size(%u), compressed size: %u, slime(%s)", consumedSize, data.size, compressionTypeToString(info.compressionType).c_str(), info.uncompressedSize, ((*_returnValues)[1]._data._len), json.c_str());
            LOG_ABORT("Error decoding JSON");
        }
    }
    if (LOG_WOULD_LOG(spam)) {
        LOG(spam, "read config value md5(%s), payload size: %lu", md5.c_str(), data.memRef.size);
    }
    return ConfigValue(PayloadPtr(new V3Payload(payloadData)), md5);
}