From e6c0a7b5060e09d7d0062b8709a23b6c763cd540 Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Fri, 26 Apr 2013 08:54:40 -0500 Subject: [PATCH] refactor configs to remove duplicate code and add http processor types to transport config --- websocketpp/config/asio.hpp | 10 +++++++--- websocketpp/config/asio_client.hpp | 10 +++++++--- websocketpp/config/asio_no_tls.hpp | 10 +++++++--- websocketpp/config/asio_no_tls_client.hpp | 10 +++++++--- websocketpp/config/core.hpp | 10 +++++++--- websocketpp/config/core_client.hpp | 10 +++++++--- websocketpp/config/debug.hpp | 12 ++++++++---- websocketpp/config/debug_asio.hpp | 9 ++++++--- websocketpp/config/debug_asio_no_tls.hpp | 9 ++++++--- 9 files changed, 62 insertions(+), 28 deletions(-) diff --git a/websocketpp/config/asio.hpp b/websocketpp/config/asio.hpp index e8410bc1c2..adb6b1efc8 100644 --- a/websocketpp/config/asio.hpp +++ b/websocketpp/config/asio.hpp @@ -40,6 +40,8 @@ namespace websocketpp { namespace config { struct asio_tls : public core { + typedef asio_tls type; + typedef core::concurrency_type concurrency_type; typedef core::request_type request_type; @@ -55,9 +57,11 @@ struct asio_tls : public core { typedef core::rng_type rng_type; struct transport_config { - typedef asio_tls::concurrency_type concurrency_type; - typedef asio_tls::alog_type alog_type; - typedef asio_tls::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; }; diff --git a/websocketpp/config/asio_client.hpp b/websocketpp/config/asio_client.hpp index e48782bb04..bf25e7c81e 100644 --- a/websocketpp/config/asio_client.hpp +++ b/websocketpp/config/asio_client.hpp @@ -40,6 +40,8 @@ namespace websocketpp { namespace config { struct asio_tls : public core_client { + typedef asio_tls type; + typedef core_client::concurrency_type concurrency_type; typedef core_client::request_type request_type; @@ -55,9 +57,11 @@ struct asio_tls : public core_client { typedef core_client::rng_type rng_type; struct transport_config { - typedef asio_tls::concurrency_type concurrency_type; - typedef asio_tls::alog_type alog_type; - typedef asio_tls::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; }; diff --git a/websocketpp/config/asio_no_tls.hpp b/websocketpp/config/asio_no_tls.hpp index c8c2b3e15a..86a2cf2a4c 100644 --- a/websocketpp/config/asio_no_tls.hpp +++ b/websocketpp/config/asio_no_tls.hpp @@ -35,6 +35,8 @@ namespace websocketpp { namespace config { struct asio : public core { + typedef asio type; + typedef core::concurrency_type concurrency_type; typedef core::request_type request_type; @@ -50,9 +52,11 @@ struct asio : public core { typedef core::rng_type rng_type; struct transport_config { - typedef asio::concurrency_type concurrency_type; - typedef asio::alog_type alog_type; - typedef asio::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::basic_socket::endpoint socket_type; }; diff --git a/websocketpp/config/asio_no_tls_client.hpp b/websocketpp/config/asio_no_tls_client.hpp index 7b19100e3c..5a18d0c769 100644 --- a/websocketpp/config/asio_no_tls_client.hpp +++ b/websocketpp/config/asio_no_tls_client.hpp @@ -35,6 +35,8 @@ namespace websocketpp { namespace config { struct asio_client : public core_client { + typedef asio_client type; + typedef core_client::concurrency_type concurrency_type; typedef core_client::request_type request_type; @@ -50,9 +52,11 @@ struct asio_client : public core_client { typedef core_client::rng_type rng_type; struct transport_config { - typedef asio_client::concurrency_type concurrency_type; - typedef asio_client::alog_type alog_type; - typedef asio_client::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::basic_socket::endpoint socket_type; }; diff --git a/websocketpp/config/core.hpp b/websocketpp/config/core.hpp index eff53c6b4a..dc5d684671 100644 --- a/websocketpp/config/core.hpp +++ b/websocketpp/config/core.hpp @@ -65,6 +65,8 @@ namespace websocketpp { namespace config { struct core { + typedef core type; + // Concurrency policy typedef websocketpp::concurrency::basic concurrency_type; @@ -90,9 +92,11 @@ struct core { typedef websocketpp::random::none::int_generator rng_type; struct transport_config { - typedef core::concurrency_type concurrency_type; - typedef core::elog_type elog_type; - typedef core::alog_type alog_type; + typedef type::concurrency_type concurrency_type; + typedef type::elog_type elog_type; + typedef type::alog_type alog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; }; /// Transport Endpoint Component diff --git a/websocketpp/config/core_client.hpp b/websocketpp/config/core_client.hpp index 9e86913521..a7896af39b 100644 --- a/websocketpp/config/core_client.hpp +++ b/websocketpp/config/core_client.hpp @@ -63,6 +63,8 @@ namespace websocketpp { namespace config { struct core_client { + typedef core_client type; + // Concurrency policy typedef websocketpp::concurrency::basic concurrency_type; @@ -89,9 +91,11 @@ struct core_client { concurrency_type> rng_type; struct transport_config { - typedef core_client::concurrency_type concurrency_type; - typedef core_client::elog_type elog_type; - typedef core_client::alog_type alog_type; + typedef type::concurrency_type concurrency_type; + typedef type::elog_type elog_type; + typedef type::alog_type alog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; }; /// Transport Endpoint Component diff --git a/websocketpp/config/debug.hpp b/websocketpp/config/debug.hpp index 1dfe91f5dd..3a8ad772e9 100644 --- a/websocketpp/config/debug.hpp +++ b/websocketpp/config/debug.hpp @@ -65,6 +65,8 @@ namespace websocketpp { namespace config { struct debug_core { + typedef debug_core type; + // Concurrency policy typedef websocketpp::concurrency::basic concurrency_type; @@ -90,9 +92,11 @@ struct debug_core { typedef websocketpp::random::none::int_generator rng_type; struct transport_config { - typedef debug_core::concurrency_type concurrency_type; - typedef debug_core::elog_type elog_type; - typedef debug_core::alog_type alog_type; + typedef type::concurrency_type concurrency_type; + typedef type::elog_type elog_type; + typedef type::alog_type alog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; }; /// Transport Endpoint Component @@ -172,7 +176,7 @@ struct debug_core { /// permessage_compress extension struct permessage_deflate_config { - typedef debug_core::request_type request_type; + typedef type::request_type request_type; /// If the remote endpoint requests that we reset the compression /// context after each message should we honor the request? diff --git a/websocketpp/config/debug_asio.hpp b/websocketpp/config/debug_asio.hpp index 88cd6849e8..010fb5d143 100644 --- a/websocketpp/config/debug_asio.hpp +++ b/websocketpp/config/debug_asio.hpp @@ -40,6 +40,7 @@ namespace websocketpp { namespace config { struct debug_asio_tls : public debug_core { + typedef debug_asio_tls type; typedef debug_core base; typedef base::concurrency_type concurrency_type; @@ -57,9 +58,11 @@ struct debug_asio_tls : public debug_core { typedef base::rng_type rng_type; struct transport_config { - typedef debug_asio_tls::concurrency_type concurrency_type; - typedef debug_asio_tls::alog_type alog_type; - typedef debug_asio_tls::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; }; diff --git a/websocketpp/config/debug_asio_no_tls.hpp b/websocketpp/config/debug_asio_no_tls.hpp index 456dbbb9aa..7645a05335 100644 --- a/websocketpp/config/debug_asio_no_tls.hpp +++ b/websocketpp/config/debug_asio_no_tls.hpp @@ -35,6 +35,7 @@ namespace websocketpp { namespace config { struct debug_asio : public debug_core { + typedef debug_asio type; typedef debug_core base; typedef base::concurrency_type concurrency_type; @@ -52,9 +53,11 @@ struct debug_asio : public debug_core { typedef base::rng_type rng_type; struct transport_config { - typedef debug_asio::concurrency_type concurrency_type; - typedef debug_asio::alog_type alog_type; - typedef debug_asio::elog_type elog_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; typedef websocketpp::transport::asio::basic_socket::endpoint socket_type; };