本文整理汇总了C++中Host::hasRequests方法的典型用法代码示例。如果您正苦于以下问题:C++ Host::hasRequests方法的具体用法?C++ Host::hasRequests怎么用?C++ Host::hasRequests使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Host
的用法示例。
在下文中一共展示了Host::hasRequests方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: servePendingRequests
void Loader::servePendingRequests(Priority minimumPriority)
{
if (m_isSuspendingPendingRequests)
return;
m_requestTimer.stop();
m_nonHTTPProtocolHost->servePendingRequests(minimumPriority);
Vector<Host*> hostsToServe;
m_hosts.checkConsistency();
HostMap::iterator i = m_hosts.begin();
HostMap::iterator end = m_hosts.end();
for (; i != end; ++i)
hostsToServe.append(i->second.get());
for (unsigned n = 0; n < hostsToServe.size(); ++n) {
Host* host = hostsToServe[n];
if (host->hasRequests())
host->servePendingRequests(minimumPriority);
else if (!host->processingResource()) {
AtomicString name = host->name();
m_hosts.remove(name.impl());
}
}
}
示例2: load
void Loader::load(DocLoader* docLoader, CachedResource* resource, bool incremental, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
{
ASSERT(docLoader);
Request* request = new Request(docLoader, resource, incremental, skipCanLoadCheck, sendResourceLoadCallbacks);
Host* host;
KURL url(resource->url());
bool isHTTP = url.protocolIs("http") || url.protocolIs("https");
if (isHTTP) {
AtomicString hostName = url.host();
host = m_hosts.get(hostName.impl());
if (!host) {
host = new Host(hostName, maxRequestsInFlightPerHost);
m_hosts.add(hostName.impl(), host);
}
} else
host = &m_nonHTTPProtocolHost;
bool hadRequests = host->hasRequests();
Priority priority = determinePriority(resource);
host->addRequest(request, priority);
docLoader->incrementRequestCount();
if (priority > Low || !isHTTP || !hadRequests) {
// Try to request important resources immediately
host->servePendingRequests(priority);
} else {
// Handle asynchronously so early low priority requests don't get scheduled before later high priority ones
scheduleServePendingRequests();
}
}
示例3: servePendingRequests
void Loader::servePendingRequests(Priority minimumPriority)
{
m_requestTimer.stop();
m_nonHTTPProtocolHost.servePendingRequests(minimumPriority);
Vector<Host*> hostsToServe;
copyValuesToVector(m_hosts, hostsToServe);
for (unsigned n = 0; n < hostsToServe.size(); ++n) {
Host* host = hostsToServe[n];
if (host->hasRequests())
host->servePendingRequests(minimumPriority);
else if (!host->processingResource()){
AtomicString name = host->name();
delete host;
m_hosts.remove(name.impl());
}
}
}
示例4: cancelRequests
void Loader::cancelRequests(DocLoader* docLoader)
{
if (m_nonHTTPProtocolHost.hasRequests())
m_nonHTTPProtocolHost.cancelRequests(docLoader);
Vector<Host*> hostsToCancel;
copyValuesToVector(m_hosts, hostsToCancel);
for (unsigned n = 0; n < hostsToCancel.size(); ++n) {
Host* host = hostsToCancel[n];
if (host->hasRequests())
host->cancelRequests(docLoader);
}
scheduleServePendingRequests();
if (docLoader->loadInProgress())
ASSERT(docLoader->requestCount() == 1);
else
ASSERT(docLoader->requestCount() == 0);
}
示例5: cancelRequests
void Loader::cancelRequests(DocLoader* docLoader)
{
docLoader->clearPendingPreloads();
if (m_nonHTTPProtocolHost->hasRequests())
m_nonHTTPProtocolHost->cancelRequests(docLoader);
Vector<Host*> hostsToCancel;
m_hosts.checkConsistency();
HostMap::iterator i = m_hosts.begin();
HostMap::iterator end = m_hosts.end();
for (; i != end; ++i)
hostsToCancel.append(i->second.get());
for (unsigned n = 0; n < hostsToCancel.size(); ++n) {
Host* host = hostsToCancel[n];
if (host->hasRequests())
host->cancelRequests(docLoader);
}
scheduleServePendingRequests();
ASSERT(docLoader->requestCount() == (docLoader->loadInProgress() ? 1 : 0));
}