1
0
mirror of synced 2025-04-21 22:25:55 +03:00

Merge pull request #90 from mrexodia/cpp11-examples

Refactor the examples to compile with a C++11 compiler
This commit is contained in:
yhirose 2018-08-17 07:04:18 -04:00 committed by GitHub
commit b9fc486f47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 13 deletions

View File

@ -12,7 +12,7 @@ int main(void)
{ {
Server svr; Server svr;
svr.Get("/hi", [](const auto& /*req*/, auto& res) { svr.Get("/hi", [](const Request& /*req*/, Response& res) {
res.set_content("Hello World!", "text/plain"); res.set_content("Hello World!", "text/plain");
}); });

View File

@ -79,36 +79,35 @@ int main(void)
return -1; return -1;
} }
svr.Get("/", [=](const auto& /*req*/, auto& res) { svr.Get("/", [=](const Request& /*req*/, Response& res) {
res.set_redirect("/hi"); res.set_redirect("/hi");
}); });
svr.Get("/hi", [](const auto& /*req*/, auto& res) { svr.Get("/hi", [](const Request& /*req*/, Response& res) {
res.set_content("Hello World!\n", "text/plain"); res.set_content("Hello World!\n", "text/plain");
}); });
svr.Get("/slow", [](const auto& /*req*/, auto& res) { svr.Get("/slow", [](const Request& /*req*/, Response& res) {
using namespace std::chrono_literals; std::this_thread::sleep_for(std::chrono::seconds(2));
std::this_thread::sleep_for(2s);
res.set_content("Slow...\n", "text/plain"); res.set_content("Slow...\n", "text/plain");
}); });
svr.Get("/dump", [](const auto& req, auto& res) { svr.Get("/dump", [](const Request& req, Response& res) {
res.set_content(dump_headers(req.headers), "text/plain"); res.set_content(dump_headers(req.headers), "text/plain");
}); });
svr.Get("/stop", [&](const auto& /*req*/, auto& /*res*/) { svr.Get("/stop", [&](const Request& /*req*/, Response& res) {
svr.stop(); svr.stop();
}); });
svr.set_error_handler([](const auto& /*req*/, auto& res) { svr.set_error_handler([](const Request& /*req*/, Response& res) {
const char* fmt = "<p>Error Status: <span style='color:red;'>%d</span></p>"; const char* fmt = "<p>Error Status: <span style='color:red;'>%d</span></p>";
char buf[BUFSIZ]; char buf[BUFSIZ];
snprintf(buf, sizeof(buf), fmt, res.status); snprintf(buf, sizeof(buf), fmt, res.status);
res.set_content(buf, "text/html"); res.set_content(buf, "text/html");
}); });
svr.set_logger([](const auto& req, const auto& res) { svr.set_logger([](const Request& req, const Response& res) {
printf("%s", log(req, res).c_str()); printf("%s", log(req, res).c_str());
}); });

View File

@ -105,7 +105,7 @@ int main(int argc, const char** argv)
Server svr; Server svr;
#endif #endif
svr.Post("/multipart", [](const auto& req, auto& res) { svr.Post("/multipart", [](const Request& req, Response& res) {
auto body = auto body =
dump_headers(req.headers) + dump_headers(req.headers) +
dump_multipart_files(req.files); dump_multipart_files(req.files);
@ -113,14 +113,14 @@ int main(int argc, const char** argv)
res.set_content(body, "text/plain"); res.set_content(body, "text/plain");
}); });
svr.set_error_handler([](const auto& /*req*/, auto& res) { svr.set_error_handler([](const Request& /*req*/, Response& res) {
const char* fmt = "<p>Error Status: <span style='color:red;'>%d</span></p>"; const char* fmt = "<p>Error Status: <span style='color:red;'>%d</span></p>";
char buf[BUFSIZ]; char buf[BUFSIZ];
snprintf(buf, sizeof(buf), fmt, res.status); snprintf(buf, sizeof(buf), fmt, res.status);
res.set_content(buf, "text/html"); res.set_content(buf, "text/html");
}); });
svr.set_logger([](const auto& req, const auto& res) { svr.set_logger([](const Request& req, const Response& res) {
cout << log(req, res); cout << log(req, res);
}); });