Пример #1
0
QNetworkReply * Pillow::ElasticNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
{
	// Find the first available child QNetworkAccessManager.
	QNetworkAccessManager* nam = NULL;
	foreach (QObject* child, children())
	{
		if ((nam = qobject_cast<QNetworkAccessManager*>(child)))
		{
			if (nam->children().size() < 6)
				break; // Found an available one.
			else
				nam = NULL; // This one is not available.
		}
	}

	if (nam == NULL)
	{
		// Did not find an available manager. Spawn a new one.
		nam = new QNetworkAccessManager(this);
		if (cookieJar())
		{
			nam->setCookieJar(cookieJar());
			cookieJar()->setParent(0);
		}
	}

	return static_cast<NamOpener*>(nam)->doCreateRequest(op, request, outgoingData);
}