QString TransferJob::queryMetaData( const QString &key ) { MetaData::ConstIterator it = m_incomingMetaData.find( key ); if ( it == m_incomingMetaData.end() ) return QString::null; return it.data(); }
DataProtocol::DataProtocol(const QCString &pool_socket, const QCString &app_socket) : SlaveBase("kio_data", pool_socket, app_socket) { #else DataProtocol::DataProtocol() { #endif kdDebug() << "DataProtocol::DataProtocol()" << endl; } /* --------------------------------------------------------------------- */ DataProtocol::~DataProtocol() { kdDebug() << "DataProtocol::~DataProtocol()" << endl; } /* --------------------------------------------------------------------- */ void DataProtocol::get(const KURL& url) { ref(); //kdDebug() << "===============================================================================================================================================================================" << endl; kdDebug() << "kio_data@"<<this<<"::get(const KURL& url)" << endl ; DataHeader hdr; parseDataHeader(url,hdr); int size = (int)hdr.url.length(); int data_ofs = QMIN(hdr.data_offset,size); // FIXME: string is copied, would be nice if we could have a reference only QString url_data = hdr.url.mid(data_ofs); QCString outData; #ifdef TESTKIO // cout << "current charset: \"" << *hdr.charset << "\"" << endl; #endif if (hdr.is_base64) { // base64 stuff is expected to contain the correct charset, so we just // decode it and pass it to the receiver KCodecs::base64Decode(url_data.local8Bit(),outData); } else { // FIXME: This is all flawed, must be reworked thoroughly // non encoded data must be converted to the given charset QTextCodec *codec = QTextCodec::codecForName(hdr.charset->latin1()); if (codec != 0) { outData = codec->fromUnicode(url_data); } else { // if there is no approprate codec, just use local encoding. This // should work for >90% of all cases. outData = url_data.local8Bit(); }/*end if*/ }/*end if*/ //kdDebug() << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; //kdDebug() << "emit mimeType@"<<this << endl ; mimeType(hdr.mime_type); //kdDebug() << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; //kdDebug() << "emit totalSize@"<<this << endl ; totalSize(outData.size()); //kdDebug() << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; //kdDebug() << "emit setMetaData@"<<this << endl ; #if defined(TESTKIO) || defined(DATAKIOSLAVE) MetaData::ConstIterator it; for (it = hdr.attributes.begin(); it != hdr.attributes.end(); ++it) { setMetaData(it.key(),it.data()); }/*next it*/ #else setAllMetaData(hdr.attributes); #endif //kdDebug() << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; //kdDebug() << "emit sendMetaData@"<<this << endl ; sendMetaData(); //kdDebug() << "^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C" << endl; // kdDebug() << "(1) queue size " << dispatchQueue.size() << endl; // empiric studies have shown that this shouldn't be queued & dispatched /*DISPATCH*/(data(outData)); // kdDebug() << "(2) queue size " << dispatchQueue.size() << endl; DISPATCH(data(QByteArray())); // kdDebug() << "(3) queue size " << dispatchQueue.size() << endl; DISPATCH(finished()); // kdDebug() << "(4) queue size " << dispatchQueue.size() << endl; deref(); }