当前位置: 首页>>代码示例>>C++>>正文


C++ LibEventServer::shouldHandle方法代码示例

本文整理汇总了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);
    }
  }
}
开发者ID:MarcReis,项目名称:hiphop-php,代码行数:51,代码来源:libevent_server.cpp

示例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);
    }
  }
}
开发者ID:Neomeng,项目名称:hiphop-php,代码行数:44,代码来源:libevent_server.cpp


注:本文中的LibEventServer::shouldHandle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。