本文整理汇总了C++中ChatChannel::feeds方法的典型用法代码示例。如果您正苦于以下问题:C++ ChatChannel::feeds方法的具体用法?C++ ChatChannel::feeds怎么用?C++ ChatChannel::feeds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ChatChannel
的用法示例。
在下文中一共展示了ChatChannel::feeds方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serveFeed
/*!
* Универсальный метод для отдачи тела фида.
*/
bool FeedHandler::serveFeed(ChatChannel channel, const QString &feedName)
{
if (!ifMethodAllowed())
return true;
if (!channel || !channel->feeds().all().contains(feedName)) {
setNoStore();
m_response->writeHead(Tufao::HttpServerResponse::NOT_FOUND);
m_response->end();
return true;
}
FeedPtr feed = channel->feed(feedName);
qint64 date = feed->head().date();
RestReplyCache &cache = m_cache[channel->id() + feedName.toUtf8()];
if (cache.date != date) {
cache.date = date;
cache.etag = etag(date, m_path.toUtf8());
cache.body = JSON::generate(feed->feed());
}
setLastModified(date);
setETag(cache.etag);
setNoCache();
if (!ifModified(cache.etag)) {
m_response->writeHead(Tufao::HttpServerResponse::NOT_MODIFIED);
m_response->end();
return true;
}
m_response->writeHead(Tufao::HttpServerResponse::OK);
if (m_request->method() != "HEAD") {
setContentLength(cache.body.size());
m_response->end(cache.body);
}
else
m_response->end();
return true;
}