Lines Matching refs:sender

39     h2o_mruby_sender_t *sender = generator->sender;  in h2o_mruby_sender_do_send()  local
40 assert(!sender->final_sent); in h2o_mruby_sender_do_send()
42 if (sender->bytes_left != SIZE_MAX) { in h2o_mruby_sender_do_send()
44 for (i = 0; i != bufcnt && sender->bytes_left > 0; ++i) { in h2o_mruby_sender_do_send()
45 if (sender->bytes_left < bufs[i].len) in h2o_mruby_sender_do_send()
46 bufs[i].len = sender->bytes_left; in h2o_mruby_sender_do_send()
47 sender->bytes_left -= bufs[i].len; in h2o_mruby_sender_do_send()
53 if (!(sender->bytes_left == 0 || sender->bytes_left == SIZE_MAX)) { in h2o_mruby_sender_do_send()
60 sender->final_sent = 1; in h2o_mruby_sender_do_send()
90 h2o_mruby_sender_t *sender = generator->sender; in h2o_mruby_sender_close_body() local
93 if (!mrb_nil_p(sender->body_obj)) { in h2o_mruby_sender_close_body()
95 if (mrb_respond_to(mrb, sender->body_obj, generator->ctx->shared->symbols.sym_close)) in h2o_mruby_sender_close_body()
96 … mrb_funcall_argv(mrb, sender->body_obj, generator->ctx->shared->symbols.sym_close, 0, NULL); in h2o_mruby_sender_close_body()
98 mrb_gc_unregister(mrb, sender->body_obj); in h2o_mruby_sender_close_body()
99 sender->body_obj = mrb_nil_value(); in h2o_mruby_sender_close_body()
105 h2o_mruby_sender_t *sender = h2o_mem_alloc_pool_aligned(&generator->req->pool, alignment, sz); in h2o_mruby_sender_create() local
106 memset(sender, 0, sz); in h2o_mruby_sender_create()
107 sender->body_obj = body; in h2o_mruby_sender_create()
110sender->bytes_left = h2o_memis(generator->req->method.base, generator->req->method.len, H2O_STRLIT… in h2o_mruby_sender_create()
113 return sender; in h2o_mruby_sender_create()
118 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in do_callback_sender_start() local
122 mrb_ary_set(mrb, input, 0, sender->super.body_obj); in do_callback_sender_start()
126 if (!sender->super.final_sent && !sender->sending.inflight) { in do_callback_sender_start()
127 h2o_doublebuffer_prepare_empty(&sender->sending); in do_callback_sender_start()
135 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in do_callback_proceed() local
137 assert(!sender->super.final_sent); in do_callback_proceed()
139 h2o_doublebuffer_consume(&sender->sending); in do_callback_proceed()
141 if (sender->has_error) { in do_callback_proceed()
144 int is_final = mrb_nil_p(sender->super.body_obj); in do_callback_proceed()
145 h2o_mruby_sender_do_send_buffer(generator, &sender->sending, &sender->receiving, is_final); in do_callback_proceed()
151 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in do_callback_sender_dispose() local
152 h2o_doublebuffer_dispose(&sender->sending); in do_callback_sender_dispose()
153 h2o_buffer_dispose(&sender->receiving); in do_callback_sender_dispose()
159 struct st_h2o_mruby_callback_sender_t *sender = in callback_sender_create() local
160 (void *)h2o_mruby_sender_create(generator, body, H2O_ALIGNOF(*sender), sizeof(*sender)); in callback_sender_create()
161 h2o_doublebuffer_init(&sender->sending, &h2o_socket_buffer_prototype); in callback_sender_create()
162 h2o_buffer_init(&sender->receiving, &h2o_socket_buffer_prototype); in callback_sender_create()
164 sender->super.start = do_callback_sender_start; in callback_sender_create()
165 sender->super.proceed = do_callback_proceed; in callback_sender_create()
166 sender->super.dispose = do_callback_sender_dispose; in callback_sender_create()
168 return &sender->super; in callback_sender_create()
174 h2o_mruby_sender_t *sender; in h2o_mruby_init_sender() local
178sender = func(generator, body); … in h2o_mruby_init_sender()
181 …if (sender != NULL) … in h2o_mruby_init_sender()
194 generator->sender = sender; in h2o_mruby_init_sender()
195 generator->super.proceed = sender->proceed; in h2o_mruby_init_sender()
227 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in send_chunk_method() local
228 if (sender->super.bytes_left != SIZE_MAX && sender->super.bytes_left < len) in send_chunk_method()
229 len = sender->super.bytes_left; /* trim data too long */ in send_chunk_method()
231 if ((h2o_buffer_try_reserve(&sender->receiving, len)).base == NULL) { in send_chunk_method()
235 memcpy(sender->receiving->bytes + sender->receiving->size, s, len); in send_chunk_method()
236 sender->receiving->size += len; in send_chunk_method()
237 if (!sender->super.final_sent && !sender->sending.inflight) in send_chunk_method()
238 h2o_mruby_sender_do_send_buffer(generator, &sender->sending, &sender->receiving, 0); in send_chunk_method()
259 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in send_chunk_eos_callback() local
260 if (!sender->super.final_sent && !sender->sending.inflight) in send_chunk_eos_callback()
261 h2o_mruby_sender_do_send_buffer(generator, &sender->sending, &sender->receiving, 1); in send_chunk_eos_callback()
281 struct st_h2o_mruby_callback_sender_t *sender = (void *)generator->sender; in handle_error_callback() local
282 if (!sender->super.final_sent) { in handle_error_callback()
283 if (sender->sending.inflight) { in handle_error_callback()
284 sender->has_error = 1; in handle_error_callback()