From 0cc440e9d28fa029819ad796a6d46a1de66b9bb9 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 8 May 2018 20:03:09 +0100 Subject: Move reposonse code into .cpp Most of it does not need to be a template --- icespider/core/ihttpRequest.cpp | 8 ++++++++ icespider/core/ihttpRequest.h | 6 ++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/icespider/core/ihttpRequest.cpp b/icespider/core/ihttpRequest.cpp index 35eb465..9325a5e 100644 --- a/icespider/core/ihttpRequest.cpp +++ b/icespider/core/ihttpRequest.cpp @@ -131,6 +131,14 @@ namespace IceSpider { response(303, (statusMsg ? *statusMsg : "Moved")); } + void + IHttpRequest::modelPartResponse(const IRouteHandler * route, const Slicer::ModelPartForRootPtr & mp) const + { + auto s = getSerializer(route); + setHeader("Content-Type", s.first.group + "/" + s.first.type); + response(200, "OK"); + s.second->Serialize(mp); + } #define getParams(T) \ template<> void IHttpRequest::setCookie(const std::string & n, const T & v, \ diff --git a/icespider/core/ihttpRequest.h b/icespider/core/ihttpRequest.h index bbd83fb..23a9d7e 100644 --- a/icespider/core/ihttpRequest.h +++ b/icespider/core/ihttpRequest.h @@ -82,11 +82,9 @@ namespace IceSpider { template void response(const IRouteHandler * route, const T & t) const { - auto s = getSerializer(route); - setHeader("Content-Type", s.first.group + "/" + s.first.type); - response(200, "OK"); - Slicer::SerializeAnyWith(t, s.second); + modelPartResponse(route, Slicer::ModelPart::CreateRootFor(t)); } + void modelPartResponse(const IRouteHandler * route, const Slicer::ModelPartForRootPtr &) const; const Core * core; }; -- cgit v1.2.3