void pb_to_webtracking()

in Sources/aliyun-log-c-sdk/log_producer_sender.c [52:82]


void pb_to_webtracking(lz4_log_buf *lz4_buf, lz4_log_buf **new_lz4_buf)
{
    aos_debug_log("[sender] pb_to_webtracking start.");
    char * buf = (char *)malloc(lz4_buf->raw_length);
    if (LOG_LZ4_decompress_safe((const char* )lz4_buf->data, buf, lz4_buf->length, lz4_buf->raw_length) <= 0)
    {
        free(buf);
        aos_fatal_log("[sender] pb_to_webtracking, LOG_LZ4_decompress_safe error");
        return;
    }

    size_t len = serialize_pb_buffer_to_webtracking(buf, lz4_buf->raw_length, &buf);

    int compress_bound = LOG_LZ4_compressBound(len);
    char *compress_data = (char *)malloc(compress_bound);
    int compressed_size = LOG_LZ4_compress_default((char *)buf, compress_data, len, compress_bound);
    if(compressed_size <= 0)
    {
        aos_fatal_log("[sender] pb_to_webtracking, LOG_LZ4_compress_default error");
        free(buf);
        free(compress_data);
        return;
    }
    *new_lz4_buf = (lz4_log_buf*)malloc(sizeof(lz4_log_buf) + compressed_size);
    (*new_lz4_buf)->length = compressed_size;
    (*new_lz4_buf)->raw_length = len;
    memcpy((*new_lz4_buf)->data, compress_data, compressed_size);
    free(buf);
    free(compress_data);
    aos_debug_log("[sender] pb_to_webtracking end.");
}