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; }
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; }
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; }
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; }