From 322f5116cb543205a134cc274ecd64152362bdc0 Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Tue, 6 Mar 2012 18:55:05 -0600 Subject: [PATCH] finishes wsperf refactoring --- examples/wsperf/request.hpp | 28 ++++++++++++++++------------ examples/wsperf/wsperf.cpp | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/examples/wsperf/request.hpp b/examples/wsperf/request.hpp index 3968e7527a..1f2ec83781 100644 --- a/examples/wsperf/request.hpp +++ b/examples/wsperf/request.hpp @@ -35,24 +35,28 @@ #include "../../src/roles/client.hpp" #include "../../src/websocketpp.hpp" +#include +#include + using websocketpp::client; +using websocketpp::server; namespace wsperf { class writer { public: - virtual void write(std::string& msg) = 0; + virtual void write(std::string msg) = 0; }; typedef boost::shared_ptr writer_ptr; template -class ws_writer : writer { +class ws_writer : public writer { public: ws_writer(typename T::handler::connection_ptr con) : m_con(con) {} - void write(std::string& msg) { - m_con->write; + void write(std::string msg) { + m_con->send(msg); } private: typename T::handler::connection_ptr m_con; @@ -78,17 +82,17 @@ struct request { try { if (command.command == "message_test") { test = case_handler_ptr(new message_test(command)); - token = test.get_token(); + token = test->get_token(); } else { - writer.write(prepare_response("error","Invalid Command")); + writer->write(prepare_response("error","Invalid Command")); return; } } catch (case_exception& e) { - writer.write(prepare_response("error",e.what())); + writer->write(prepare_response("error",e.what())); return; } - writer.write(prepare_response("test_start","")); + writer->write(prepare_response("test_start","")); client e(test); @@ -98,16 +102,16 @@ struct request { e.elog().set_level(websocketpp::log::elevel::ERROR); e.elog().set_level(websocketpp::log::elevel::FATAL); - e.connect(); + e.connect(uri); e.run(); - writer.write(prepare_response("test_start",tests[i]->get_data())); + writer->write(prepare_response("test_start",test->get_data())); - writer.write(prepare_response("test_complete","")); + writer->write(prepare_response("test_complete","")); } std::string prepare_response(std::string type,std::string data) { - return "{\"type\":\"" + type + "\",\"token\":\"" + m_token + "\",\"data\":\"" + data + "\"}"; + return "{\"type\":\"" + type + "\",\"token\":\"" + token + "\",\"data\":\"" + data + "\"}"; } }; diff --git a/examples/wsperf/wsperf.cpp b/examples/wsperf/wsperf.cpp index c81622aa78..09aff17839 100644 --- a/examples/wsperf/wsperf.cpp +++ b/examples/wsperf/wsperf.cpp @@ -89,7 +89,7 @@ int main(int argc, char* argv[]) { echo_endpoint.elog().set_level(websocketpp::log::elevel::FATAL); for (int i = 0; i < num_threads; i++) { - threads.push_back(boost::shared_ptr(new boost::thread(boost::bind(&process_requests, &rc)))); + threads.push_back(boost::shared_ptr(new boost::thread(boost::bind(&wsperf::process_requests, &rc)))); } std::cout << "Starting wsperf server on port " << port << " with " << num_threads << " processing threads." << std::endl;