private def zpageHandlerToService()

in opencensus/src/main/scala/com/twitter/server/opencensus/ZPagesAdminRoutes.scala [13:35]


  private def zpageHandlerToService(
    handler: ZPageHandler,
    name: String
  ): Service[Request, Response] =
    new Service[Request, Response] {
      override def toString: String = s"ZPageHandlerService($name)"

      def apply(request: Request): Future[Response] = {
        val requestParams =
          request
            .getParamNames().asScala.map { name => name -> request.getParam(name) }.toMap.asJava

        // process in a FuturePool to handle the possibility
        // of zpages having blocking code.
        FuturePool.unboundedPool {
          val output = new ByteArrayOutputStream()
          handler.emitHtml(requestParams, output)
          Response(request)
            .status(Status.Ok)
            .content(Buf.ByteArray.Owned(output.toByteArray))
        }
      }
    }