void NotifyingXMLParser::parse_files(const std::vector<std::pair<std::string, std::string> > &files) { int progress = 0; for(size_t i = 0; i < files.size(); ++i) { int tags; scoped_ptr<mrt::BaseFile> f(Finder->get_file(files[i].second, "rt")); get_file_stats(tags, *f); progress += tags; } reset_progress.emit(progress); for(size_t i = 0; i < files.size(); ++i) { scoped_ptr<mrt::BaseFile> f(Finder->get_file(files[i].second, "rt")); onFile(files[i].first, files[i].second); mrt::XMLParser::parse_file(*f); } }
/* Return data from encoded file*/ string Archiver :: getData(Node* root, ifstream &inFile, string& pathOfUncompressedFile) { ofstream onFile(pathOfUncompressedFile.c_str()); int sizeOfData; inFile >> sizeOfData; string encodedData = ""; int k = sizeOfData--; while(k) { char c; inFile.get(c); for (int i = 0; i < 8; i++) { encodedData += c & (1 << (7 - i)) ? '1' : '0'; k--; if(!k) { break; } } } Node* tempPtr = root; string data = ""; for (int i = 0; i < sizeOfData; i++) { if (encodedData[i] - '0') { tempPtr = tempPtr->right; } else { tempPtr = tempPtr->left; } if (!tempPtr->left && !tempPtr->right) { data += tempPtr->value; onFile.put(tempPtr->value); tempPtr = root; } } return data; }
void SeafileModel::init() { QVariant token ( configValue("token:blowfish") ); QVariant baseUrl ( configValue("address") ); if(!baseUrl.type() != QVariant::String){ qWarning() << "INVALID URL" << baseUrl; emit error(QString("Seafile: invalid address of type ") + token.typeName()); } if(!token.type() != QVariant::String){ qWarning() << "INVALID TOKEN" << token; emit error(QString("Seafile: invalid token of type ") + token.typeName()); } this->m_server = new SeafileServer(baseUrl.toByteArray(), token.toByteArray()); this->m_server->ping(true); connect(this->m_server, SIGNAL(loadingDone()), this , SLOT(onLoadFinished()) ); connect( this->m_server, SIGNAL(file(QSharedPointer<SeafileFile>)), this , SLOT (onFile(QSharedPointer<SeafileFile>)) ); }