Exemplo n.º 1
0
static void
write_stream(HioOutputStream  *stream,
             const StreamDesc *desc)
{
    StreamGenerator generator;
    gsize remaining;

    stream_generator_init(&generator, desc->seed);
    remaining = desc->length;

    while (remaining > 0) {
        char buf[48];
        gsize count;
        HrtBuffer *buffer;

        count = MIN(G_N_ELEMENTS(buf), remaining);
        stream_generator_generate(&generator,
                                  &buf[0],
                                  count);

        buffer = hrt_buffer_new(HRT_BUFFER_ENCODING_UTF8,
                                &allocator,
                                NULL, NULL);
        hrt_buffer_append_ascii(buffer, &buf[0], count);
        hrt_buffer_lock(buffer);

        hio_output_stream_write(stream, buffer);

        hrt_buffer_unref(buffer);

        g_assert(count <= remaining);
        remaining -= count;
    }
}
Exemplo n.º 2
0
void
hio_response_http_write(HioResponseHttp *http,
                        HrtBuffer       *buffer)
{
    /* this has to be more complex for chunked encoding, which is why
     * we don't allow direct access to the body stream.
     */
    hio_output_stream_write(http->body_stream, buffer);
}
Exemplo n.º 3
0
static void
write_to_header(HioResponseHttp *http,
                const char      *s)
{
    HrtBuffer *buffer;

    buffer = hrt_buffer_new_static_utf8_locked(s);
    hio_output_stream_write(http->header_stream,
                            buffer);
    hrt_buffer_unref(buffer);
}