MCPcopy Create free account
hub / github.com/Tablecruncher/tablecruncher / routing

Method routing

external/httplib.h:6805–6880  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6803}
6804
6805inline bool Server::routing(Request &req, Response &res, Stream &strm) {
6806 if (pre_routing_handler_ &&
6807 pre_routing_handler_(req, res) == HandlerResponse::Handled) {
6808 return true;
6809 }
6810
6811 // File handler
6812 auto is_head_request = req.method == "HEAD";
6813 if ((req.method == "GET" || is_head_request) &&
6814 handle_file_request(req, res, is_head_request)) {
6815 return true;
6816 }
6817
6818 if (detail::expect_content(req)) {
6819 // Content reader handler
6820 {
6821 ContentReader reader(
6822 [&](ContentReceiver receiver) {
6823 return read_content_with_content_receiver(
6824 strm, req, res, std::move(receiver), nullptr, nullptr);
6825 },
6826 [&](MultipartContentHeader header, ContentReceiver receiver) {
6827 return read_content_with_content_receiver(strm, req, res, nullptr,
6828 std::move(header),
6829 std::move(receiver));
6830 });
6831
6832 if (req.method == "POST") {
6833 if (dispatch_request_for_content_reader(
6834 req, res, std::move(reader),
6835 post_handlers_for_content_reader_)) {
6836 return true;
6837 }
6838 } else if (req.method == "PUT") {
6839 if (dispatch_request_for_content_reader(
6840 req, res, std::move(reader),
6841 put_handlers_for_content_reader_)) {
6842 return true;
6843 }
6844 } else if (req.method == "PATCH") {
6845 if (dispatch_request_for_content_reader(
6846 req, res, std::move(reader),
6847 patch_handlers_for_content_reader_)) {
6848 return true;
6849 }
6850 } else if (req.method == "DELETE") {
6851 if (dispatch_request_for_content_reader(
6852 req, res, std::move(reader),
6853 delete_handlers_for_content_reader_)) {
6854 return true;
6855 }
6856 }
6857 }
6858
6859 // Read content into `req.body`
6860 if (!read_content(strm, req, res)) { return false; }
6861 }
6862

Callers

nothing calls this directly

Calls 2

expect_contentFunction · 0.85
read_contentFunction · 0.85

Tested by

no test coverage detected