benchmark.cpp 960 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <httpserver.hpp>
  2. #include <cstdlib>
  3. #include <memory>
  4. #define PATH "/plaintext"
  5. #define BODY "Hello, World!"
  6. using namespace httpserver;
  7. class hello_world_resource : public http_resource {
  8. public:
  9. hello_world_resource(const std::shared_ptr<http_response>& resp):
  10. resp(resp)
  11. {
  12. }
  13. const std::shared_ptr<http_response> render(const http_request&) {
  14. return resp;
  15. }
  16. private:
  17. std::shared_ptr<http_response> resp;
  18. };
  19. int main(int argc, char** argv)
  20. {
  21. webserver ws = create_webserver(atoi(argv[1]))
  22. .start_method(http::http_utils::INTERNAL_SELECT)
  23. .max_threads(atoi(argv[2]));
  24. std::shared_ptr<http_response> hello = std::shared_ptr<http_response>(new string_response(BODY, 200));
  25. hello->with_header("Server", "libhttpserver");
  26. hello_world_resource hwr(hello);
  27. ws.register_resource(PATH, &hwr, false);
  28. ws.start(true);
  29. return 0;
  30. }