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


C++ HTTPRequest::isHead方法代码示例

本文整理汇总了C++中HTTPRequest::isHead方法的典型用法代码示例。如果您正苦于以下问题:C++ HTTPRequest::isHead方法的具体用法?C++ HTTPRequest::isHead怎么用?C++ HTTPRequest::isHead使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HTTPRequest的用法示例。


在下文中一共展示了HTTPRequest::isHead方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: while

void *child(void *arg) {

  MySocket *client = (MySocket *) arg;

  bool requestActive = true;
  while (requestActive) {
    HTTPRequest *request = new HTTPRequest(client, PORT);
    HTTPResponse *response = new HTTPResponse();
    IptvService *service = new IptvService();

    if (!request->readRequest()) {
      // XXX FIXME throw an exception
      break;
    } else if (request->isHead()) {
      service->head(request, response);
      client->write(response->response());
    } else if (request->isGet()) {
      service->get(request, response);
      client->write(response->response());
      
      shared_ptr<BlockingQueue<string>> queue =
	shared_ptr<BlockingQueue<string>>(new BlockingQueue<string>());
      struct ThreadData *threadData = new struct ThreadData;
      threadData->queue = queue;
      threadData->service = service;
      pthread_t tid;
      pthread_create(&tid, NULL, streamService, threadData);
      pthread_detach(tid);

      try {
	string data;      
	while (true) {
	  data = queue->popFront();
	  HttpUtils::writeChunk(client, data.c_str(), data.length());
	}
      } catch (SocketWriteError swe) {
	requestActive = false;
      } catch (...) {
	// swallow it
      }
      queue->close();
    }
    
    delete response;
    delete request;
  }
  
  client->close();
  delete client;

  return NULL;
}
开发者ID:kingst,项目名称:bixer,代码行数:52,代码来源:bixer.cpp


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