Пример #1
0
ib_status_t ib_stream_push_sdata(ib_stream_t *s,
                                 ib_sdata_t *sdata)
{
    IB_FTRACE_INIT();

    s->slen += sdata->dlen;

    if (IB_LIST_ELEMENTS(s) == 0) {
        IB_LIST_NODE_INSERT_INITIAL(s, sdata);
        IB_FTRACE_RET_STATUS(IB_OK);
    }

    IB_LIST_NODE_INSERT_LAST(s, sdata, ib_sdata_t);

    IB_FTRACE_RET_STATUS(IB_OK);
}
Пример #2
0
ib_status_t ib_list_unshift(ib_list_t *list, void *data)
{
    IB_FTRACE_INIT(ib_list_unshift);
    ib_list_node_t *node = (ib_list_node_t *)ib_mpool_calloc(list->mp,
                                                             1, sizeof(*node));
    if (node == NULL) {
        IB_FTRACE_RET_STATUS(IB_EALLOC);
    }
    node->data = data;

    if (list->nelts == 0) {
        IB_LIST_NODE_INSERT_INITIAL(list, node);
        IB_FTRACE_RET_STATUS(IB_OK);
    }

    IB_LIST_NODE_INSERT_FIRST(list, node, ib_list_node_t);

    IB_FTRACE_RET_STATUS(IB_OK);
}