Пример #1
0
/* recv stream to a edp packet (S->C) */
EdpPacket* GetEdpPacket(RecvBuffer* buf)
{
    EdpPacket* pkg = NULL;
    int32_t flag = 0;

    flag = IsPkgComplete(buf);
    if (flag <= 0)
    {
        printf("%s flag<=0\n", __func__);
        return pkg;
    }
    pkg = NewBuffer();
    WriteBytes(pkg, buf->_data, flag);
    /* shrink buffer */
    memmove(buf->_data, buf->_data + flag, buf->_write_pos - flag);
    buf->_write_pos -= flag;
    return pkg;
}
Пример #2
0
/* recv stream to a edp packet (S->C) */
EdpPacket* GetEdpPacket(RecvBuffer* buf)
{
    //assert(buf->_read_pos == 0);
    EdpPacket* pkg = 0;
    int32 flag     = IsPkgComplete(buf);

    if (flag <= 0)
    {
        return pkg;
    }

    pkg = NewBuffer();
    WriteBytes(pkg, buf->_data, flag);

    /* shrink buffer */
    mymemmove(buf->_data, buf->_data + flag, buf->_write_pos - flag);
    buf->_write_pos -= flag;

    return pkg;
}