本文整理汇总了C++中LibEventServer::shouldHandle方法的典型用法代码示例。如果您正苦于以下问题:C++ LibEventServer::shouldHandle方法的具体用法?C++ LibEventServer::shouldHandle怎么用?C++ LibEventServer::shouldHandle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LibEventServer
的用法示例。
在下文中一共展示了LibEventServer::shouldHandle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doJobImpl
void LibEventWorker::doJobImpl(LibEventJobPtr job, bool abort) {
job->stopTimer();
evhttp_request *request = job->request;
assert(m_opaque);
LibEventServer *server = (LibEventServer*)m_opaque;
LibEventTransport transport(server, request, m_id);
#ifdef _EVENT_USE_OPENSSL
if (evhttp_is_connection_ssl(job->request->evcon)) {
transport.setSSL();
}
#endif
bool error = true;
std::string errorMsg;
if (abort) {
transport.sendString("Service Unavailable", 503);
return;
}
try {
std::string cmd = transport.getCommand();
cmd = std::string("/") + cmd;
if (server->shouldHandle(cmd)) {
transport.onRequestStart(job->getStartTimer());
m_handler->handleRequest(&transport);
error = false;
} else {
transport.sendString("Not Found", 404);
return;
}
} catch (Exception &e) {
if (Server::StackTraceOnError) {
errorMsg = e.what();
} else {
errorMsg = e.getMessage();
}
} catch (std::exception &e) {
errorMsg = e.what();
} catch (...) {
errorMsg = "(unknown exception)";
}
if (error) {
if (RuntimeOption::ServerErrorMessage) {
transport.sendString(errorMsg, 500);
} else {
transport.sendString(RuntimeOption::FatalErrorMessage, 500);
}
}
}
示例2: doJob
void LibEventWorker::doJob(LibEventJobPtr job) {
job->stopTimer();
evhttp_request *request = job->request;
ASSERT(m_opaque);
LibEventServer *server = (LibEventServer*)m_opaque;
if (m_handler == NULL) {
m_handler = server->createRequestHandler();
ASSERT(m_handler);
}
LibEventTransport transport(server, request, m_id);
bool error = true;
std::string errorMsg;
try {
std::string cmd = transport.getCommand();
cmd = std::string("/") + cmd;
if (server->shouldHandle(cmd)) {
m_handler->handleRequest(&transport);
error = false;
} else {
transport.sendString("Not Found", 404);
return;
}
} catch (Exception &e) {
if (Server::StackTraceOnError) {
errorMsg = e.what();
} else {
errorMsg = e.getMessage();
}
} catch (std::exception &e) {
errorMsg = e.what();
} catch (...) {
errorMsg = "(unknown exception)";
}
if (error) {
if (RuntimeOption::ServerErrorMessage) {
transport.sendString(errorMsg, 500);
} else {
transport.sendString(RuntimeOption::FatalErrorMessage, 500);
}
}
}