On Feb 26, 3:05 pm, Jeppe Nejsum Madsen <je...@ingolfs.dk> wrote: > On Fri, Feb 26, 2010 at 1:53 PM, Marius <marius.dan...@gmail.com> wrote: > > > On Feb 26, 1:29 pm, Jeppe Nejsum Madsen <je...@ingolfs.dk> wrote: > >> On Fri, Feb 26, 2010 at 12:06 PM, Jeppe Nejsum Madsen <je...@ingolfs.dk> > >> wrote: > > >> > So the thread creation/scheduling and the two times file copying could be > >> > avoided by writing directly to the output stream. But I agree this would > >> > have to be special cased somehow. It's not an urgent issue atm, but I'll > >> > try to see if some clean solution can be implemented. > > >> An idea just struck :-) Could this be handled in much the same way as > >> a redirect? Something like > > >> S.sendFile("application/pdf", "myfilename.pdf", outputStream => > >> mylibrary.write(outputStream)) > > >> this would throw an exception like ResponseShortcutException, lift > >> would intercept it, write the appropriate headers and execute the > >> passed function with the response outputstream as parameter. > > >> This would prohibit accidental output to response. > > >> Thoughts? > > > I would prefer something like : > > > final case class OutputStreamingResponse(data: (OutputStream) => Unit, > > size: Long, headers: List[(String, String)], cookies: > > List[HTTPCookie], code: Int) extends BasicResponse { > > .. > > } > > > hence remain consistent with Lift's response paradigm. > > > We *COULD* provide the OutputStrem from the servlet response but that > > would be ok since we are in a LiftResponse and NOT inside the > > rendering pipeline. > > Agreed, a cleaner solution. And this could also be used outside of a > stateful response.
Sure it can be stateless since at the end of the day it is just a LiftResponse. > The size should probably be Box[Long] as it may be > unknown. > > Should I create a ticket for this? Sure, but I'm not sure who/when will take care of this. We'll see. > > /Jeppe -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.