static service_t * s_service_new (const char *name) { service_t *self = (service_t *) zmalloc (sizeof (service_t)); if (self) { self->name = strdup (name); if (self->name) self->queue = zlistx_new (); if (self->queue) self->offers = zlistx_new (); if (self->offers) { zlistx_set_destructor (self->queue, (czmq_destructor *) mlm_msg_destroy); zlistx_set_destructor (self->offers, (czmq_destructor *) s_offer_destroy); } else s_service_destroy (&self); } return self; }
static service_t * s_service_new (const char *name, const server_t *server) { service_t *self = (service_t *) zmalloc (sizeof (service_t)); if (self) { self->name = strdup (name); if (self->name) self->queue = mlm_msgq_new (); if (self->queue) self->offers = zlistx_new (); if (self->offers) { mlm_msgq_set_cfg (self->queue, server->service_queue_cfg); mlm_msgq_set_name (self->queue, "service %s", self->name); zlistx_set_destructor (self->offers, (czmq_destructor *) s_offer_destroy); } else s_service_destroy (&self); } return self; }
static void server_terminate (server_t *self) { s_service_destroy (&self->xrap); zhashx_destroy (&self->clients); }