in Sources/aliyun-log-c-sdk/log_builder.c [288:324]
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)log_sdslen(grp->topic), buf);
memcpy(buf, grp->topic, log_sdslen(grp->topic));
buf += log_sdslen(grp->topic);
}
if (grp->source != NULL)
{
*buf++ = 0x22;
buf+= uint32_pack((uint32_t)log_sdslen(grp->source), buf);
memcpy(buf, grp->source, log_sdslen(grp->source));
buf += log_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;
}