From 503fe6c03a315677c2ed1c7aca1e2a98ff8adfdf Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Tue, 18 Aug 2015 22:58:03 -0400 Subject: [PATCH] Introduce BufferedResponse filter --- examples/app/app.vala | 2 +- src/vsgi-buffered-response.vala | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/vsgi-buffered-response.vala diff --git a/examples/app/app.vala b/examples/app/app.vala index 9580cc03e..19484517d 100644 --- a/examples/app/app.vala +++ b/examples/app/app.vala @@ -334,7 +334,7 @@ app.matcher (VSGI.Request.GET, (req) => { return req.uri.get_path () == "/custom }); app.get ("filtering", (req, res, next) => { - next (req, new BufferedResponse (res)); + next (req, new VSGI.BufferedResponse (res)); }).then ((req, res) => { // res is now buffered res.body.write_all ("Hello world!".data, null); diff --git a/src/vsgi-buffered-response.vala b/src/vsgi-buffered-response.vala new file mode 100644 index 000000000..9d7fb3d77 --- /dev/null +++ b/src/vsgi-buffered-response.vala @@ -0,0 +1,21 @@ +using GLib; + +namespace VSGI { + + public class BufferedResponse : ResponseFilter { + + private BufferedOutputStream? buffer = null; + + public override OutputStream body { + get { + if (this.buffer == null) + this.buffer = new BufferedOutputStream (base_response.body); + return this.buffer; + } + } + + public BufferedResponse (Response base_response) { + Object (base_response: base_response); + } + } +}