void Statistics::writeTimerFired() { ASSERT(RunLoop::isMain()); Vector<StringCapture> hashesToAdd; copyToVector(m_hashesToAdd, hashesToAdd); m_hashesToAdd.clear(); Vector<std::pair<StringCapture, StoreDecision>> storeDecisionsToAdd; copyToVector(m_storeDecisionsToAdd, storeDecisionsToAdd); m_storeDecisionsToAdd.clear(); shrinkIfNeeded(); serialBackgroundIOQueue().dispatch([this, hashesToAdd, storeDecisionsToAdd] { if (!m_database.isOpen()) return; WebCore::SQLiteTransactionInProgressAutoCounter transactionCounter; WebCore::SQLiteTransaction writeTransaction(m_database); writeTransaction.begin(); addHashesToDatabase(hashesToAdd); addStoreDecisionsToDatabase(storeDecisionsToAdd); writeTransaction.commit(); }); }
int SList::readTransaction(string fname) { ifstream readTransaction(fname); if(readTransaction.good()) { queue<string> trans; getline(readTransaction,temp); //transaction ID trans.push(temp); getline(readTransaction,temp); //num jobs trans.push(temp); stringtoothers(temp,numJobs); getline(readTransaction,temp); while(numJobs>0) { numJobs--; getline(readTransaction,job); //what job it is trans.push(job); getline(readTransaction,temp); //since all jobs have at least one line, take in one line first. trans.push(temp); if(!job.compare("SALE")||!job.compare("RESTOCK")) { getline(readTransaction,temp); trans.push(temp); } else if(!job.compare("ADD")) { for(int i=0;i<5;i++) { getline(readTransaction,temp); trans.push(temp); } } getline(readTransaction,temp); } storeTrans.push(trans); readTransaction.close(); storeExistingBatch(0); //need to copy out from existing file numT++; writeTransaction(); return 1; } else { readTransaction.close(); return 0; } }
void MyMoneyStorageXML::writeTransactions(QDomElement& transactions) { MyMoneyTransactionFilter filter; filter.setReportAllSplits(false); QList<MyMoneyTransaction> list; m_storage->transactionList(list, filter); transactions.setAttribute("count", list.count()); QList<MyMoneyTransaction>::ConstIterator it; signalProgress(0, list.count(), i18n("Saving transactions...")); int i = 0; for (it = list.constBegin(); it != list.constEnd(); ++it) { writeTransaction(transactions, *it); signalProgress(++i, 0); } }
void executeRequest( const QgsServerRequest& request, QgsServerResponse& response, const QgsProject* project ) { QgsServerRequest::Parameters params = request.parameters(); QString versionString = params.value( "VERSION" ); // Set the default version if ( versionString.isEmpty() ) { versionString = version(); // defined in qgswfsutils.h } // Get the request QString req = params.value( QStringLiteral( "REQUEST" ) ); if ( req.isEmpty() ) { throw QgsServiceException( QStringLiteral( "OperationNotSupported" ), QStringLiteral( "Please check the value of the REQUEST parameter" ) ); } if ( QSTR_COMPARE( req, "GetCapabilities" ) ) { writeGetCapabilities( mServerIface, project, versionString, request, response ); } else if ( QSTR_COMPARE( req, "GetFeature" ) ) { writeGetFeature( mServerIface, project, versionString, request, response ); } else if ( QSTR_COMPARE( req, "DescribeFeatureType" ) ) { writeDescribeFeatureType( mServerIface, versionString, request, response ); } else if ( QSTR_COMPARE( req, "Transaction" ) ) { writeTransaction( mServerIface, versionString, request, response ); } else { // Operation not supported throw QgsServiceException( QStringLiteral( "OperationNotSupported" ), QStringLiteral( "Request %1 is not supported" ).arg( req ) ); } }
void SList::writeTransaction() { ofstream writeTransaction("batchjobs.txt"); writeTransaction<<numT<<endl<<endl; int countT=numT; while(countT>0) { countT--; writeTransaction<<storeTrans.front().front()<<endl; //transaction ID storeTrans.front().pop(); stringtoothers(storeTrans.front().front(),numJobs); writeTransaction<<storeTrans.front().front()<<endl<<endl; //num jobs storeTrans.front().pop(); while(numJobs>0) { numJobs--; job=storeTrans.front().front(); writeTransaction<<storeTrans.front().front()<<endl;//what job it is storeTrans.front().pop(); writeTransaction<<storeTrans.front().front()<<endl; //since all jobs have at least one line, write out one line first. storeTrans.front().pop(); if(!job.compare("SALE")||!job.compare("RESTOCK")) { writeTransaction<<storeTrans.front().front()<<endl; storeTrans.front().pop(); } else if(!job.compare("ADD")) { for(int i=0;i<5;i++) { writeTransaction<<storeTrans.front().front()<<endl; storeTrans.front().pop(); } } writeTransaction<<endl; } storeTrans.pop(); } writeTransaction.close(); }
void Statistics::bootstrapFromNetworkCache(const String& networkCachePath) { ASSERT(!RunLoop::isMain()); LOG(NetworkCache, "(NetworkProcess) Bootstrapping the network cache statistics database from the network cache..."); Vector<StringCapture> hashes; traverseCacheFiles(networkCachePath, [&hashes](const String& hashString, const String&) { Key::HashType hash; if (!Key::stringToHash(hashString, hash)) return; hashes.append(hashString); }); WebCore::SQLiteTransactionInProgressAutoCounter transactionCounter; WebCore::SQLiteTransaction writeTransaction(m_database); writeTransaction.begin(); addHashesToDatabase(hashes); writeTransaction.commit(); }