HandlerResponse WebEngine::evaluate(HandlerRequest & req) { Handler * h = &HandlerRegistrar::getRoot(); for(auto part : req.URIParts) { h = &h->resolve(part, &req); } HandlerResponse res; switch(req.method) { case HM_GET: { res = h->get(req); break; } case HM_POST: { res = h->post(req); break; } case HM_PUT: { res = h->put(req); break; } case HM_DELETE: { res = h->del(req); break; } case HM_OPTIONS: { res = h->get(req); break; } case HM_AUTH: { res = MakeAuthorizationResponse( h->authorize(req.body, req.version) ); break; } default: { res.meta.code = RSC_ERR_BAD_METHOD; break; } } return res; }