static uint32_t _log_pack()

in src/log_builder.c [277:313]


static uint32_t _log_pack(log_group * grp, uint8_t * buf)
{
    uint8_t * start_buf = buf;

    if (grp->logs.buffer != NULL)
    {
        buf += grp->logs.now_buffer_len;
    }
    else
    {
        return 0;
    }

    if (grp->topic != NULL)
    {
        *buf++ = 0x1A;
        buf+= uint32_pack((uint32_t)sdslen(grp->topic), buf);
        memcpy(buf, grp->topic, sdslen(grp->topic));
        buf += sdslen(grp->topic);
    }

    if (grp->source != NULL)
    {
        *buf++ = 0x22;
        buf+= uint32_pack((uint32_t)sdslen(grp->source), buf);
        memcpy(buf, grp->source, sdslen(grp->source));
        buf += sdslen(grp->source);
    }

    if (grp->tags.buffer != NULL)
    {
        memcpy(buf, grp->tags.buffer, grp->tags.now_buffer_len);
        buf += grp->tags.now_buffer_len;
    }

    return buf - start_buf;
}