Lines Matching refs:ctx

188 evrpc_process_hooks(struct evrpc_hook_list *head, void *ctx,  in evrpc_process_hooks()  argument
193 int res = hook->process(ctx, req, evbuf, hook->process_arg); in evrpc_process_hooks()
280 static int evrpc_pause_request(void *vbase, void *ctx,
505 struct evrpc_request_wrapper *ctx);
653 static void evrpc_schedule_request_closure(void *ctx, enum EVRPC_HOOK_RESULT);
660 struct evrpc_request_wrapper *ctx) in evrpc_schedule_request() argument
663 struct evrpc_pool *pool = ctx->pool; in evrpc_schedule_request()
666 if ((req = evhttp_request_new(evrpc_reply_done, ctx)) == NULL) in evrpc_schedule_request()
670 ctx->request_marshal(req->output_buffer, ctx->request); in evrpc_schedule_request()
673 ctx->evcon = connection; in evrpc_schedule_request()
676 ctx->req = req; in evrpc_schedule_request()
681 evrpc_hook_associate_meta_(&ctx->hook_meta, connection); in evrpc_schedule_request()
685 ctx, req, req->output_buffer); in evrpc_schedule_request()
692 if (evrpc_pause_request(pool, ctx, in evrpc_schedule_request()
706 evrpc_schedule_request_closure(ctx, EVRPC_CONTINUE); in evrpc_schedule_request()
712 (*ctx->cb)(&status, ctx->request, ctx->reply, ctx->cb_arg); in evrpc_schedule_request()
713 evrpc_request_wrapper_free(ctx); in evrpc_schedule_request()
720 struct evrpc_request_wrapper *ctx = arg; in evrpc_schedule_request_closure() local
721 struct evhttp_connection *connection = ctx->evcon; in evrpc_schedule_request_closure()
722 struct evhttp_request *req = ctx->req; in evrpc_schedule_request_closure()
723 struct evrpc_pool *pool = ctx->pool; in evrpc_schedule_request_closure()
731 uri = evrpc_construct_uri(ctx->name); in evrpc_schedule_request_closure()
742 evtimer_add(&ctx->ev_timeout, &tv); in evrpc_schedule_request_closure()
757 (*ctx->cb)(&status, ctx->request, ctx->reply, ctx->cb_arg); in evrpc_schedule_request_closure()
758 evrpc_request_wrapper_free(ctx); in evrpc_schedule_request_closure()
763 evrpc_pause_request(void *vbase, void *ctx, in evrpc_pause_request() argument
771 pause->ctx = ctx; in evrpc_pause_request()
779 evrpc_resume_request(void *vbase, void *ctx, enum EVRPC_HOOK_RESULT res) in evrpc_resume_request() argument
786 if (pause->ctx == ctx) in evrpc_resume_request()
793 (*pause->cb)(pause->ctx, res); in evrpc_resume_request()
800 evrpc_make_request(struct evrpc_request_wrapper *ctx) in evrpc_make_request() argument
802 struct evrpc_pool *pool = ctx->pool; in evrpc_make_request()
805 evtimer_assign(&ctx->ev_timeout, pool->base, evrpc_request_timeout, ctx); in evrpc_make_request()
814 TAILQ_INSERT_TAIL(&pool->requests, ctx, next); in evrpc_make_request()
832 struct evrpc_request_wrapper *ctx = (struct evrpc_request_wrapper *) in evrpc_make_request_ctx() local
834 if (ctx == NULL) in evrpc_make_request_ctx()
837 ctx->pool = pool; in evrpc_make_request_ctx()
838 ctx->hook_meta = NULL; in evrpc_make_request_ctx()
839 ctx->evcon = NULL; in evrpc_make_request_ctx()
840 ctx->name = mm_strdup(rpcname); in evrpc_make_request_ctx()
841 if (ctx->name == NULL) { in evrpc_make_request_ctx()
842 mm_free(ctx); in evrpc_make_request_ctx()
845 ctx->cb = cb; in evrpc_make_request_ctx()
846 ctx->cb_arg = cbarg; in evrpc_make_request_ctx()
847 ctx->request = request; in evrpc_make_request_ctx()
848 ctx->reply = reply; in evrpc_make_request_ctx()
849 ctx->request_marshal = req_marshal; in evrpc_make_request_ctx()
850 ctx->reply_clear = rpl_clear; in evrpc_make_request_ctx()
851 ctx->reply_unmarshal = rpl_unmarshal; in evrpc_make_request_ctx()
853 return (ctx); in evrpc_make_request_ctx()
862 struct evrpc_request_wrapper *ctx = arg; in evrpc_reply_done() local
863 struct evrpc_pool *pool = ctx->pool; in evrpc_reply_done()
867 event_del(&ctx->ev_timeout); in evrpc_reply_done()
869 ctx->req = req; in evrpc_reply_done()
873 evrpc_reply_done_closure(ctx, EVRPC_CONTINUE); in evrpc_reply_done()
878 evrpc_hook_associate_meta_(&ctx->hook_meta, ctx->evcon); in evrpc_reply_done()
882 ctx, req, req->input_buffer); in evrpc_reply_done()
897 evrpc_pause_request(pool, ctx, in evrpc_reply_done()
907 evrpc_reply_done_closure(ctx, hook_res); in evrpc_reply_done()
915 struct evrpc_request_wrapper *ctx = arg; in evrpc_reply_done_closure() local
916 struct evhttp_request *req = ctx->req; in evrpc_reply_done_closure()
917 struct evrpc_pool *pool = ctx->pool; in evrpc_reply_done_closure()
930 res = ctx->reply_unmarshal(ctx->reply, req->input_buffer); in evrpc_reply_done_closure()
937 ctx->reply_clear(ctx->reply); in evrpc_reply_done_closure()
940 (*ctx->cb)(&status, ctx->request, ctx->reply, ctx->cb_arg); in evrpc_reply_done_closure()
942 evrpc_request_wrapper_free(ctx); in evrpc_reply_done_closure()
956 struct evrpc_request_wrapper *ctx = TAILQ_FIRST(&pool->requests); in evrpc_pool_schedule() local
960 if (ctx == NULL) in evrpc_pool_schedule()
964 TAILQ_REMOVE(&pool->requests, ctx, next); in evrpc_pool_schedule()
965 evrpc_schedule_request(evcon, ctx); in evrpc_pool_schedule()
972 struct evrpc_request_wrapper *ctx = arg; in evrpc_request_timeout() local
973 struct evhttp_connection *evcon = ctx->evcon; in evrpc_request_timeout()
1000 struct evrpc_hook_meta *ctx; in evrpc_hook_meta_new_() local
1001 ctx = mm_malloc(sizeof(struct evrpc_hook_meta)); in evrpc_hook_meta_new_()
1002 EVUTIL_ASSERT(ctx != NULL); in evrpc_hook_meta_new_()
1004 TAILQ_INIT(&ctx->meta_data); in evrpc_hook_meta_new_()
1005 ctx->evcon = NULL; in evrpc_hook_meta_new_()
1007 return (ctx); in evrpc_hook_meta_new_()
1014 struct evrpc_hook_meta *ctx = *pctx; in evrpc_hook_associate_meta_() local
1015 if (ctx == NULL) in evrpc_hook_associate_meta_()
1016 *pctx = ctx = evrpc_hook_meta_new_(); in evrpc_hook_associate_meta_()
1017 ctx->evcon = evcon; in evrpc_hook_associate_meta_()
1021 evrpc_hook_context_free_(struct evrpc_hook_meta *ctx) in evrpc_hook_context_free_() argument
1023 evrpc_meta_data_free(&ctx->meta_data); in evrpc_hook_context_free_()
1024 mm_free(ctx); in evrpc_hook_context_free_()
1029 evrpc_hook_add_meta(void *ctx, const char *key, in evrpc_hook_add_meta() argument
1032 struct evrpc_request_wrapper *req = ctx; in evrpc_hook_add_meta()
1052 evrpc_hook_find_meta(void *ctx, const char *key, void **data, size_t *data_size) in evrpc_hook_find_meta() argument
1054 struct evrpc_request_wrapper *req = ctx; in evrpc_hook_find_meta()
1072 evrpc_hook_get_connection(void *ctx) in evrpc_hook_get_connection() argument
1074 struct evrpc_request_wrapper *req = ctx; in evrpc_hook_get_connection()
1089 struct evrpc_request_wrapper *ctx; in evrpc_send_request_generic() local
1090 ctx = evrpc_make_request_ctx(pool, request, reply, in evrpc_send_request_generic()
1092 if (ctx == NULL) in evrpc_send_request_generic()
1094 return (evrpc_make_request(ctx)); in evrpc_send_request_generic()
1152 evrpc_request_get_pool(struct evrpc_request_wrapper *ctx) in evrpc_request_get_pool() argument
1154 return (ctx->pool); in evrpc_request_get_pool()
1158 evrpc_request_set_pool(struct evrpc_request_wrapper *ctx, in evrpc_request_set_pool() argument
1161 ctx->pool = pool; in evrpc_request_set_pool()
1165 evrpc_request_set_cb(struct evrpc_request_wrapper *ctx, in evrpc_request_set_cb() argument
1169 ctx->cb = cb; in evrpc_request_set_cb()
1170 ctx->cb_arg = cb_arg; in evrpc_request_set_cb()