/* * DO NOT EDIT! generated by embed_mruby_code.pl * Please refer to the respective source files for copyright information. */ /* lib/handler/mruby/embedded/core.rb */ #define H2O_MRUBY_CODE_CORE \ "module Kernel\n" \ " def _h2o_define_callback(name, id)\n" \ " Kernel.define_method(name) do |*args|\n" \ " ret = Fiber.yield([ id, _h2o_create_resumer(), args ])\n" \ " if ret.kind_of? Exception\n" \ " raise ret\n" \ " end\n" \ " ret\n" \ " end\n" \ " end\n" \ " def _h2o_create_resumer()\n" \ " me = Fiber.current\n" \ " Proc.new do |v|\n" \ " me.resume(v)\n" \ " end\n" \ " end\n" \ " def _h2o_proc_each_to_array()\n" \ " Proc.new do |o|\n" \ " a = []\n" \ " o.each do |x|\n" \ " a << x\n" \ " end\n" \ " a\n" \ " end\n" \ " end\n" \ " def _h2o_proc_app_to_fiber()\n" \ " Proc.new do |app|\n" \ " cached = nil\n" \ " Proc.new do |req|\n" \ " fiber = cached\n" \ " cached = nil\n" \ " if !fiber\n" \ " fiber = Fiber.new do\n" \ " self_fiber = Fiber.current\n" \ " req = Fiber.yield\n" \ " while 1\n" \ " begin\n" \ " while 1\n" \ " resp = app.call(req)\n" \ " cached = self_fiber\n" \ " req = Fiber.yield(resp)\n" \ " end\n" \ " rescue => e\n" \ " cached = self_fiber\n" \ " req = Fiber.yield([-1, e])\n" \ " end\n" \ " end\n" \ " end\n" \ " fiber.resume\n" \ " end\n" \ " fiber.resume(req)\n" \ " end\n" \ " end\n" \ " end\n" \ "end\n" /* lib/handler/mruby/embedded/http_request.rb */ #define H2O_MRUBY_CODE_HTTP_REQUEST \ "module H2O\n" \ " class HttpRequest\n" \ " def join\n" \ " if !@resp\n" \ " @resp = _h2o__http_join_response(self)\n" \ " end\n" \ " @resp\n" \ " end\n" \ " def _set_response(resp)\n" \ " @resp = resp\n" \ " end\n" \ " end\n" \ " class HttpInputStream\n" \ " def each\n" \ " while c = _h2o__http_fetch_chunk(self)\n" \ " yield c\n" \ " end\n" \ " end\n" \ " def join\n" \ " s = \"\"\n" \ " each do |c|\n" \ " s << c\n" \ " end\n" \ " s\n" \ " end\n" \ " class Empty < HttpInputStream\n" \ " def each; end\n" \ " end\n" \ " end\n" \ "end\n" /* lib/handler/mruby/embedded/chunked.rb */ #define H2O_MRUBY_CODE_CHUNKED \ "module Kernel\n" \ " def _h2o_chunked_proc_each_to_fiber()\n" \ " Proc.new do |src|\n" \ " fiber = Fiber.new do\n" \ " src.each do |chunk|\n" \ " _h2o_send_chunk(chunk)\n" \ " end\n" \ " _h2o_send_chunk_eos()\n" \ " end\n" \ " fiber.resume\n" \ " end\n" \ " end\n" \ "end\n"