MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / routing

Method routing

examples/server/httplib.h:5825–5900  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5823}
5824
5825inline bool Server::routing(Request &req, Response &res, Stream &strm) {
5826 if (pre_routing_handler_ &&
5827 pre_routing_handler_(req, res) == HandlerResponse::Handled) {
5828 return true;
5829 }
5830
5831 // File handler
5832 bool is_head_request = req.method == "HEAD";
5833 if ((req.method == "GET" || is_head_request) &&
5834 handle_file_request(req, res, is_head_request)) {
5835 return true;
5836 }
5837
5838 if (detail::expect_content(req)) {
5839 // Content reader handler
5840 {
5841 ContentReader reader(
5842 [&](ContentReceiver receiver) {
5843 return read_content_with_content_receiver(
5844 strm, req, res, std::move(receiver), nullptr, nullptr);
5845 },
5846 [&](MultipartContentHeader header, ContentReceiver receiver) {
5847 return read_content_with_content_receiver(strm, req, res, nullptr,
5848 std::move(header),
5849 std::move(receiver));
5850 });
5851
5852 if (req.method == "POST") {
5853 if (dispatch_request_for_content_reader(
5854 req, res, std::move(reader),
5855 post_handlers_for_content_reader_)) {
5856 return true;
5857 }
5858 } else if (req.method == "PUT") {
5859 if (dispatch_request_for_content_reader(
5860 req, res, std::move(reader),
5861 put_handlers_for_content_reader_)) {
5862 return true;
5863 }
5864 } else if (req.method == "PATCH") {
5865 if (dispatch_request_for_content_reader(
5866 req, res, std::move(reader),
5867 patch_handlers_for_content_reader_)) {
5868 return true;
5869 }
5870 } else if (req.method == "DELETE") {
5871 if (dispatch_request_for_content_reader(
5872 req, res, std::move(reader),
5873 delete_handlers_for_content_reader_)) {
5874 return true;
5875 }
5876 }
5877 }
5878
5879 // Read content into `req.body`
5880 if (!read_content(strm, req, res)) { return false; }
5881 }
5882

Callers

nothing calls this directly

Calls 2

expect_contentFunction · 0.85
read_contentFunction · 0.85

Tested by

no test coverage detected