--- parser3/src/classes/response.C 2026/04/25 13:38:46 1.36 +++ parser3/src/classes/response.C 2026/10/14 23:18:32 1.38 @@ -10,8 +10,9 @@ #include "pa_request.h" #include "pa_vresponse.h" +#include "pa_vfile.h" -volatile const char * IDENT_RESPONSE_C="$Id: response.C,v 1.36 2026/04/25 13:38:46 moko Exp $"; +volatile const char * IDENT_RESPONSE_C="$Id: response.C,v 1.38 2026/10/14 23:18:32 moko Exp $"; // class @@ -32,9 +33,20 @@ static void _clear(Request& r, MethodPar GET_SELF(r, VResponse).fields().clear(); } +static void _stream(Request& r, MethodParams& params) { + Value& part=params[0]; + // checked here, before headers are sent + if(!dynamic_cast(&part)) + params.as_string(0, "part must be string or file"); + r.stream(part); +} + // constructor MResponse::MResponse(): Methoded("response") { // ^clear[] add_native_method("clear", Method::CT_STATIC, _clear, 0, 0); + + // ^stream[string or file]: the headers go with the first part, the result of @main is not sent then + add_native_method("stream", Method::CT_STATIC, _stream, 1, 1); }