int nn_xbus_add (struct nn_sockbase *self, struct nn_pipe *pipe) { struct nn_xbus *xbus; struct nn_xbus_data *data; xbus = nn_cont (self, struct nn_xbus, sockbase); data = nn_alloc (sizeof (struct nn_xbus_data), "pipe data (xbus)"); alloc_assert (data); nn_fq_add (&xbus->inpipes, pipe, &data->initem, 8); nn_dist_add (&xbus->outpipes, pipe, &data->outitem); nn_pipe_setdata (pipe, data); return 0; }
int nn_xsurveyor_add (struct nn_sockbase *self, struct nn_pipe *pipe) { struct nn_xsurveyor *xsurveyor; struct nn_xsurveyor_data *data; xsurveyor = nn_cont (self, struct nn_xsurveyor, sockbase); data = nn_alloc (sizeof (struct nn_xsurveyor_data), "pipe data (xsurveyor)"); alloc_assert (data); data->pipe = pipe; nn_fq_add (&xsurveyor->inpipes, pipe, &data->initem, 8); nn_dist_add (&xsurveyor->outpipes, pipe, &data->outitem); nn_pipe_setdata (pipe, data); return 0; }
int nn_xsurveyor_add (struct nn_sockbase *self, struct nn_pipe *pipe) { struct nn_xsurveyor *xsurveyor; struct nn_xsurveyor_data *data; int rcvprio; size_t sz; xsurveyor = nn_cont (self, struct nn_xsurveyor, sockbase); 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_xsurveyor_data), "pipe data (xsurveyor)"); alloc_assert (data); data->pipe = pipe; nn_fq_add (&xsurveyor->inpipes, &data->initem, pipe, rcvprio); nn_dist_add (&xsurveyor->outpipes, &data->outitem, pipe); nn_pipe_setdata (pipe, data); return 0; }