int BlsHttpClient::run() { int ret = E_SUCCESS; MString body; if ((ret = readHttpHeader(*m_parser, body, *m_socket)) != E_SUCCESS) { log_error("BlsHttpClient read Http Header failed, ret=%d", ret); return ret; } // get http host MString host = m_parser->host(); if (host.empty()) { log_error("BlsHttpClient Http Header error");\ return -1; } MString vhost; MString tempStr = "HTTP://" + host + "" + m_parser->url(); MUrl tempUrl(tempStr); if (MUrl::stringIsIp(host)) { vhost = tempUrl.queryByKey("vhost"); } if (vhost.empty()) { vhost = tempUrl.host(); } if (tempUrl.path().endWith(HTTP_LIVE_FLV_SUFFIX)) { MString rtmpStr = "rtmp://" + vhost + ":1935" + tempUrl.path(); int suffixLen = sizeof(HTTP_LIVE_FLV_SUFFIX); rtmpStr = rtmpStr.substr(0, rtmpStr.size() - suffixLen + 1); int ret = sendHttpLiveFlv(rtmpStr); if (ret != E_SUCCESS) { log_trace("Http Live Flv finished."); } } else { } end: clean(); return ret; }
/*! \internal Reads application's command line, sets Flags, paths etc. */ bool WsdlConverter::parseArguments(const QStringList &arguments) { bool wasFile = false; bool wasOutDir = false; bool wasClassName = false; bool endOfOptions = false; QString appFilePath = qApp->applicationFilePath(); foreach (QString s, arguments) { // Handles '--' arguments if (s.startsWith(QLatin1String("--")) && (endOfOptions == false)) { // End of options: if (s == QLatin1String("--")) { endOfOptions = true; continue; } else if (s == QLatin1String("--soap12")) { // Protocol flags: flags->resetFlags(Flags::Soap10 | Flags::Http | Flags::Json | Flags::Xml); flags->setFlags(Flags::Soap12); } else if (s == QLatin1String("--soap10")) { flags->resetFlags(Flags::Soap12 | Flags::Http | Flags::Json | Flags::Xml); flags->setFlags(Flags::Soap10); } else if (s == QLatin1String("--soap")) { flags->resetFlags(Flags::Http | Flags::Json | Flags::Xml); flags->setFlags(Flags::Soap); } else if (s == QLatin1String("--http")) { flags->resetFlags(Flags::Soap | Flags::Json | Flags::Xml); flags->setFlags(Flags::Http); } else if (s == QLatin1String("--json")) { flags->resetFlags(Flags::Soap | Flags::Http | Flags::Xml); flags->setFlags(Flags::Json); } else if (s == QLatin1String("--xml")) { flags->resetFlags(Flags::Soap | Flags::Http | Flags::Json); flags->setFlags(Flags::Xml); } else if (s.startsWith(QLatin1String("--rest"))) { flags->setFlags(Flags::Rest); // Set HTTP method: if (s == QLatin1String("--rest")) { flags->setHttpMethod(Flags::Post); } else if (s.startsWith(QLatin1String("--rest="))) { if (!flags->setHttpMethod(s.mid(7))) return false; } } else if (s == QLatin1String("--synchronous")) { // Synchronousness: flags->resetFlags(Flags::Asynchronous); flags->setFlags(Flags::Synchronous); } else if (s == QLatin1String("--asynchronous")) { flags->resetFlags(Flags::Synchronous); flags->setFlags(Flags::Asynchronous); } else if (s == QLatin1String("--subclass")) { // Modes: flags->resetFlags(Flags::DebugMode | Flags::CompactMode | Flags::FullMode); flags->setFlags(Flags::Subclass); } else if ((s == QLatin1String("--full-mode")) || (s == QLatin1String("--full"))) { flags->resetFlags(Flags::DebugMode | Flags::CompactMode | Flags::Subclass); flags->setFlags(Flags::FullMode); } else if ((s == QLatin1String("--debug-mode")) || (s == QLatin1String("--debug"))) { flags->resetFlags(Flags::FullMode | Flags::CompactMode | Flags::Subclass); flags->setFlags(Flags::DebugMode); } else if ((s == QLatin1String("--compact-mode")) || (s == QLatin1String("--compact"))) { flags->resetFlags(Flags::FullMode | Flags::CompactMode | Flags::Subclass); flags->setFlags(Flags::CompactMode); } else if ((s == QLatin1String("--standard-structure")) || (s == QLatin1String("--standard"))) { // Structures: flags->resetFlags(Flags::NoMessagesStructure | Flags::AllInOneDirStructure); flags->setFlags(Flags::StandardStructure); } else if ((s == QLatin1String("--no-messages-structure")) || (s == QLatin1String("--no-messages"))) { flags->resetFlags(Flags::StandardStructure | Flags::AllInOneDirStructure); flags->setFlags(Flags::NoMessagesStructure); } else if ((s == QLatin1String("--all-in-one-dir-structure")) || (s == QLatin1String("--all-in-one-dir"))) { flags->resetFlags(Flags::StandardStructure | Flags::NoMessagesStructure); flags->setFlags(Flags::AllInOneDirStructure); } else if (s == QLatin1String("--qmake")) { // Build systems (qmake, cmake and scons can be build simultaneously): flags->setFlags(Flags::Qmake); } else if (s == QLatin1String("--cmake")) { flags->setFlags(Flags::Cmake); } else if (s == QLatin1String("--scons")) { flags->setFlags(Flags::Scons); } else if (s == QLatin1String("--no-build-system")) { flags->resetFlags(Flags::Qmake | Flags::Cmake | Flags::Scons); flags->setFlags(Flags::NoBuildSystem); } else if (s.startsWith(QLatin1String("--msgSuffix="))) { // Suffixes: flags->setMethodSuffix(s.mid(12)); } else if (s.startsWith(QLatin1String("--objSuffix="))) { flags->setObjectSuffix(s.mid(12)); } else if (s.startsWith(QLatin1String("--endLine="))) { // End line: flags->setEndLine(s.mid(10)); } else if (s.startsWith(QLatin1String("--tabulation="))) { // Tabulation: flags->setTab(s.mid(13).toInt()); } else if (s == QLatin1String("--force")) { // Force: flags->setForced(true); } else { qWarning() << "WARNING: unrecognised command: " << s << ". Converter will continue."; } } else if (s.startsWith(QLatin1String("-")) && (endOfOptions == false)) { // Handles '-' arguments for (int i = 1; i < s.size(); i++) { QChar chr = s.at(i); if (chr == ('a')) { flags->resetFlags(Flags::Synchronous); flags->setFlags(Flags::Asynchronous); } else if (chr == ('s')) { flags->resetFlags(Flags::DebugMode | Flags::CompactMode | Flags::FullMode); flags->setFlags(Flags::Subclass); } else if (chr == ('n')) { flags->resetFlags(Flags::Qmake | Flags::Cmake | Flags::Scons); flags->setFlags(Flags::NoBuildSystem); } else if (chr == ('f')) { flags->setForced(true); } else { qWarning() << "WARNING: unrecognised command: " << s << ". Converter will continue."; } } } else if ((s != QString()) && (s != appFilePath)) { // Handles file names, class name etc. // Handles wsdl file, base class name, output dir. if (!wasFile) { wasFile = true; QString tmp = s; QUrl tempUrl(tmp); if (!QFile::exists(tmp) && tempUrl.isValid()) { argList->insert(Path, tmp);; } else { QFileInfo tempInfo(tmp); if (tempInfo.isRelative()) { tmp.prepend(qApp->applicationDirPath() + "/"); argList->insert(Path, tmp); } } } else if (!wasOutDir) { wasOutDir = true; argList->insert(Dir, s); } else if (!wasClassName) { wasClassName = true; argList->insert(ClassName, s); } } } if (wasFile == false) { enterErrorState(QLatin1String("No WSDL file specified, conversion can no continue. " "For help, type wsdlConvert --help.")); return false; } return true; }
/*! Sets this texture to have the contents of the image stored at \a url. If the environment variable QT3D_MULTITHREAD is defined, network urls (http, etc) are downloaded in a separate download thread, otherwise they are downloaded asynchronously in the current thread. */ void QGLTexture2D::setUrl(const QUrl &url) { Q_D(QGLTexture2D); if (d->url == url) return; d->url = url; if (url.isEmpty()) { d->image = QImage(); } else { if (url.scheme() == QLatin1String("file") || url.scheme().toLower() == QLatin1String("qrc")) { QString fileName = url.toLocalFile(); // slight hack since there doesn't appear to be a QUrl::toResourcePath() function // to convert qrc:///foo into :/foo if (url.scheme().toLower() == QLatin1String("qrc")) { // strips off any qrc: prefix and any excess slashes and replaces it with :/ QUrl tempUrl(url); tempUrl.setScheme(""); fileName = QLatin1String(":")+tempUrl.toString(); } if (fileName.endsWith(QLatin1String(".dds"), Qt::CaseInsensitive)) { setCompressedFile(fileName); } else { QImage im(fileName); if (im.isNull()) qWarning("Could not load texture: %s", qPrintable(fileName)); setImage(im); } } else { if (!d->downloadManager) { if (getenv(QT3D_MULTITHREAD)) { //Download in a multithreaded environment d->downloadManager = new QThreadedDownloadManager(); } else { //Download in a single threaded environment d->downloadManager = new QDownloadManager(); } connect (d->downloadManager,SIGNAL(downloadComplete(QByteArray)),this, SLOT(textureRequestFinished(QByteArray))); } //Create a temporary image that will be used until the Url is loaded. static QImage tempImg(128,128, QImage::Format_RGB32); QColor fillcolor(Qt::gray); tempImg.fill(fillcolor.rgba()); setImage(tempImg); if (!d->downloadManager->beginDownload(QUrl(url.toString()))) { qWarning("Unable to issue texture download request."); } } } }