1
0
Fork 0
mirror of https://github.com/KingDuckZ/kamokan.git synced 2025-08-23 13:40:51 +00:00

Revert "Pass the ResponseFactory object down to the Response itself."

This reverts commit 3bc6c56c03.
This commit is contained in:
King_DuckZ 2017-05-12 22:18:03 +01:00
parent 3bc6c56c03
commit 73707c2ad0
12 changed files with 11 additions and 38 deletions

View file

@ -54,14 +54,8 @@ namespace {
} }
template <typename T> template <typename T>
std::unique_ptr<tawashi::Response> make_response ( std::unique_ptr<tawashi::Response> make_response (const Kakoune::SafePtr<tawashi::SettingsBag>& parSettings, const Kakoune::SafePtr<tawashi::cgi::Env>& parCgiEnv) {
const Kakoune::SafePtr<tawashi::ResponseFactory>& parFactory, return static_cast<std::unique_ptr<tawashi::Response>>(std::make_unique<T>(parSettings, &std::cout, parCgiEnv));
const Kakoune::SafePtr<tawashi::SettingsBag>& parSettings,
const Kakoune::SafePtr<tawashi::cgi::Env>& parCgiEnv
) {
return static_cast<std::unique_ptr<tawashi::Response>>(
std::make_unique<T>(parFactory, parSettings, &std::cout, parCgiEnv)
);
} }
void fill_defaults (tawashi::SettingsBag& parSettings) { void fill_defaults (tawashi::SettingsBag& parSettings) {

View file

@ -20,12 +20,11 @@
namespace tawashi { namespace tawashi {
IndexResponse::IndexResponse ( IndexResponse::IndexResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv
) : ) :
Response(parFactory, parSettings, parStreamOut, parCgiEnv, false) Response(parSettings, parStreamOut, parCgiEnv, false)
{ {
} }
} //namespace tawashi } //namespace tawashi

View file

@ -24,7 +24,6 @@ namespace tawashi {
class IndexResponse : public Response { class IndexResponse : public Response {
public: public:
IndexResponse ( IndexResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv

View file

@ -31,12 +31,11 @@ namespace tawashi {
} //unnamed namespace } //unnamed namespace
PastieResponse::PastieResponse ( PastieResponse::PastieResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv
) : ) :
Response(parFactory, parSettings, parStreamOut, parCgiEnv, true), Response(parSettings, parStreamOut, parCgiEnv, true),
m_langmap_dir(parSettings->as<std::string>("langmap_dir")), m_langmap_dir(parSettings->as<std::string>("langmap_dir")),
m_plain_text(false), m_plain_text(false),
m_syntax_highlight(true) m_syntax_highlight(true)

View file

@ -25,7 +25,6 @@ namespace tawashi {
class PastieResponse : public Response { class PastieResponse : public Response {
public: public:
PastieResponse ( PastieResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv

View file

@ -23,7 +23,6 @@
#include "pathname/pathname.hpp" #include "pathname/pathname.hpp"
#include "list_highlight_langs.hpp" #include "list_highlight_langs.hpp"
#include "cgi_env.hpp" #include "cgi_env.hpp"
#include "response_factory.hpp"
#include <utility> #include <utility>
#include <cassert> #include <cassert>
#include <fstream> #include <fstream>
@ -109,14 +108,12 @@ namespace tawashi {
} //unnamed namespace } //unnamed namespace
Response::Response ( Response::Response (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv, const Kakoune::SafePtr<cgi::Env>& parCgiEnv,
bool parWantRedis bool parWantRedis
) : ) :
m_resp_value(g_def_response_type), m_resp_value(g_def_response_type),
m_factory(parFactory),
//m_page_basename(fetch_page_basename(m_cgi_env)), //m_page_basename(fetch_page_basename(m_cgi_env)),
m_cgi_env(parCgiEnv), m_cgi_env(parCgiEnv),
m_settings(parSettings), m_settings(parSettings),
@ -127,7 +124,6 @@ namespace tawashi {
{ {
assert(m_cgi_env); assert(m_cgi_env);
assert(m_stream_out); assert(m_stream_out);
assert(m_factory);
if (parWantRedis) { if (parWantRedis) {
m_redis = std::make_unique<redis::IncRedis>(make_incredis(*parSettings)); m_redis = std::make_unique<redis::IncRedis>(make_incredis(*parSettings));

View file

@ -30,7 +30,6 @@ namespace redis {
namespace tawashi { namespace tawashi {
class SettingsBag; class SettingsBag;
class ResponseFactory;
namespace cgi { namespace cgi {
class Env; class Env;
@ -49,7 +48,6 @@ namespace tawashi {
}; };
Response ( Response (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv, const Kakoune::SafePtr<cgi::Env>& parCgiEnv,
@ -69,7 +67,6 @@ namespace tawashi {
virtual std::string on_mustache_retrieve(); virtual std::string on_mustache_retrieve();
std::string m_resp_value; std::string m_resp_value;
Kakoune::SafePtr<ResponseFactory> m_factory;
Kakoune::SafePtr<cgi::Env> m_cgi_env; Kakoune::SafePtr<cgi::Env> m_cgi_env;
Kakoune::SafePtr<SettingsBag> m_settings; Kakoune::SafePtr<SettingsBag> m_settings;
std::string m_website_root; std::string m_website_root;

View file

@ -45,12 +45,11 @@ namespace tawashi {
//spdlog::get("statuslog")->info("making response object for \"{}\"", parName); //spdlog::get("statuslog")->info("making response object for \"{}\"", parName);
auto maker_it = m_local_data->makers.find(std::string(parName.data(), parName.size())); auto maker_it = m_local_data->makers.find(std::string(parName.data(), parName.size()));
Kakoune::SafePtr<ResponseFactory> self(this);
if (m_local_data->makers.end() != maker_it) { if (m_local_data->makers.end() != maker_it) {
return maker_it->second(self, m_local_data->settings, m_local_data->cgi_env); return maker_it->second(m_local_data->settings, m_local_data->cgi_env);
} }
else if (m_local_data->jolly_maker) { else if (m_local_data->jolly_maker) {
return m_local_data->jolly_maker(self, m_local_data->settings, m_local_data->cgi_env); return m_local_data->jolly_maker(m_local_data->settings, m_local_data->cgi_env);
} }
else { else {
assert(false); assert(false);

View file

@ -28,13 +28,9 @@ namespace tawashi {
class Env; class Env;
} //namespace cgi } //namespace cgi
class ResponseFactory : public Kakoune::SafeCountable { class ResponseFactory {
public: public:
typedef std::function<std::unique_ptr<Response>( typedef std::function<std::unique_ptr<Response>(const Kakoune::SafePtr<SettingsBag>&, const Kakoune::SafePtr<cgi::Env>& parCgiEnv)> ResponseMakerFunc;
const Kakoune::SafePtr<ResponseFactory>&,
const Kakoune::SafePtr<SettingsBag>&,
const Kakoune::SafePtr<cgi::Env>&
)> ResponseMakerFunc;
explicit ResponseFactory (const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<cgi::Env>& parCgiEnv); explicit ResponseFactory (const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<cgi::Env>& parCgiEnv);
~ResponseFactory() noexcept; ~ResponseFactory() noexcept;

View file

@ -90,12 +90,11 @@ namespace tawashi {
} //unnamed namespace } //unnamed namespace
SubmitPasteResponse::SubmitPasteResponse ( SubmitPasteResponse::SubmitPasteResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv
) : ) :
Response(parFactory, parSettings, parStreamOut, parCgiEnv, true) Response(parSettings, parStreamOut, parCgiEnv, true)
{ {
this->change_type(Response::ContentType, "text/plain"); this->change_type(Response::ContentType, "text/plain");
} }

View file

@ -26,7 +26,6 @@ namespace tawashi {
class SubmitPasteResponse : public Response { class SubmitPasteResponse : public Response {
public: public:
SubmitPasteResponse ( SubmitPasteResponse (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv

View file

@ -21,7 +21,6 @@
#include "ini_file.hpp" #include "ini_file.hpp"
#include "settings_bag.hpp" #include "settings_bag.hpp"
#include "safe_stack_object.hpp" #include "safe_stack_object.hpp"
#include "response_factory.hpp"
#include <sstream> #include <sstream>
#include <utility> #include <utility>
#include <string> #include <string>
@ -58,12 +57,11 @@ namespace tawashi {
class IndexResponseCustomMustache : public IndexResponse { class IndexResponseCustomMustache : public IndexResponse {
public: public:
IndexResponseCustomMustache ( IndexResponseCustomMustache (
const Kakoune::SafePtr<ResponseFactory>& parFactory,
const Kakoune::SafePtr<SettingsBag>& parSettings, const Kakoune::SafePtr<SettingsBag>& parSettings,
std::ostream* parStreamOut, std::ostream* parStreamOut,
const Kakoune::SafePtr<cgi::Env>& parCgiEnv const Kakoune::SafePtr<cgi::Env>& parCgiEnv
) : ) :
IndexResponse(parFactory, parSettings, parStreamOut, parCgiEnv) IndexResponse(parSettings, parStreamOut, parCgiEnv)
{ {
} }
@ -108,8 +106,7 @@ TEST_CASE ("Index response", "[index][response]") {
std::stringstream response_stream; std::stringstream response_stream;
SafeStackObject<tawashi::ResponseFactory> resp_factory(settings, fake_env); tawashi::IndexResponseCustomMustache response(settings, &response_stream, fake_env);
tawashi::IndexResponseCustomMustache response(resp_factory, settings, &response_stream, fake_env);
response.send(); response.send();
response_stream.seekg(0); response_stream.seekg(0);