示例#1
0
int nn_xreq_add (struct nn_sockbase *self, struct nn_pipe *pipe)
{
    struct nn_xreq *xreq;
    struct nn_xreq_data *data;
    int sndprio;
    int rcvprio;
    size_t sz;

    xreq = nn_cont (self, struct nn_xreq, sockbase);

    sz = sizeof (sndprio);
    nn_pipe_getopt (pipe, NN_SOL_SOCKET, NN_SNDPRIO, &sndprio, &sz);
    nn_assert (sz == sizeof (sndprio));
    nn_assert (sndprio >= 1 && sndprio <= 16);

    sz = sizeof (rcvprio);
    nn_pipe_getopt (pipe, NN_SOL_SOCKET, NN_RCVPRIO, &rcvprio, &sz);
    nn_assert (sz == sizeof (rcvprio));
    nn_assert (rcvprio >= 1 && rcvprio <= 16);

    data = nn_alloc (sizeof (struct nn_xreq_data), "pipe data (req)");
    alloc_assert (data);
    nn_pipe_setdata (pipe, data);
    nn_lb_add (&xreq->lb, &data->lb, pipe, sndprio);
    nn_fq_add (&xreq->fq, &data->fq, pipe, rcvprio);

    return 0;
}
示例#2
0
文件: xpush.c 项目: Droppe/nanomsg
static int nn_xpush_add (struct nn_sockbase *self, struct nn_pipe *pipe)
{
    struct nn_xpush *xpush;
    struct nn_xpush_data *data;

    xpush = nn_cont (self, struct nn_xpush, sockbase);
    data = nn_alloc (sizeof (struct nn_xpush_data), "pipe data (push)");
    alloc_assert (data);
    nn_pipe_setdata (pipe, data);
    nn_lb_add (&xpush->lb, pipe, &data->lb, self->sndprio);

    return 0;
}
示例#3
0
文件: xpush.c 项目: WongTai/nanomsg
static int nn_xpush_add (struct nn_sockbase *self, struct nn_pipe *pipe)
{
    struct nn_xpush *xpush;
    struct nn_xpush_data *data;
    int sndprio;
    size_t sz;

    xpush = nn_cont (self, struct nn_xpush, sockbase);

    sz = sizeof (sndprio);
    nn_pipe_getopt (pipe, NN_SOL_SOCKET, NN_SNDPRIO, &sndprio, &sz);
    nn_assert (sz == sizeof (sndprio));
    nn_assert (sndprio >= 1 && sndprio <= 16);

    data = nn_alloc (sizeof (struct nn_xpush_data), "pipe data (push)");
    alloc_assert (data);
    nn_pipe_setdata (pipe, data);
    nn_lb_add (&xpush->lb, pipe, &data->lb, sndprio);

    return 0;
}
示例#4
0
文件: xreq.c 项目: javarange/nanomsg
int nn_xreq_add (struct nn_sockbase *self, struct nn_pipe *pipe)
{
    int rc;
    struct nn_xreq *xreq;
    struct nn_xreq_data *data;
    int sndprio;
    size_t sz;

    xreq = nn_cont (self, struct nn_xreq, sockbase);

    sz = sizeof (sndprio);
    rc = nn_sockbase_getopt (&xreq->sockbase, NN_SNDPRIO, &sndprio, &sz);
    errnum_assert (rc == 0, -rc);
    nn_assert (sz == sizeof (sndprio));

    data = nn_alloc (sizeof (struct nn_xreq_data), "pipe data (req)");
    alloc_assert (data);
    nn_pipe_setdata (pipe, data);
    nn_lb_add (&xreq->lb, pipe, &data->lb, sndprio);
    nn_fq_add (&xreq->fq, pipe, &data->fq, 8);
    return 0;
}