static int nn_req_init (struct nn_req *self, const struct nn_sockbase_vfptr *vfptr) { int rc; rc = nn_xreq_init (&self->xreq, vfptr); if (rc < 0) return rc; self->sink = &nn_req_sink; /* Start assigning request IDs beginning with a random number. This way there should be no key clashes even if the executable is re-started. */ nn_random_generate (&self->reqid, sizeof (self->reqid)); self->state = NN_REQ_STATE_IDLE; self->resend_ivl = NN_REQ_DEFAULT_RESEND_IVL; nn_timer_init (&self->resend_timer, &self->sink, nn_sockbase_getcp (&self->xreq.sockbase)); return 0; }
static int nn_surveyor_init (struct nn_surveyor *self, const struct nn_sockbase_vfptr *vfptr) { int rc; rc = nn_xsurveyor_init (&self->xsurveyor, vfptr); if (rc < 0) return rc; self->sink = &nn_surveyor_sink; self->flags = 0; /* Start assigning survey IDs beginning with a random number. This way there should be no key clashes even if the executable is re-started. */ nn_random_generate (&self->surveyid, sizeof (self->surveyid)); self->deadline = NN_SURVEYOR_DEFAULT_DEADLINE; nn_timer_init (&self->deadline_timer, &self->sink, nn_sockbase_getcp (&self->xsurveyor.sockbase)); return 0; }