Warning, file /pim/sink/tests/dbwriter.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #include <QByteArrayList> 0002 #include <QDebug> 0003 #include <storage.h> 0004 0005 int main(int argc, char *argv[]) 0006 { 0007 0008 QByteArrayList arguments; 0009 for (int i = 0; i < argc; i++) { 0010 arguments << argv[i]; 0011 } 0012 auto testDataPath = arguments.value(1); 0013 auto dbName = arguments.value(2); 0014 auto count = arguments.value(3).toInt(); 0015 0016 if (Sink::Storage::DataStore(testDataPath, dbName, Sink::Storage::DataStore::ReadOnly).exists()) { 0017 Sink::Storage::DataStore(testDataPath, dbName, Sink::Storage::DataStore::ReadWrite).removeFromDisk(); 0018 } 0019 0020 qWarning() << "Creating db: " << testDataPath << dbName << count; 0021 QMap<QByteArray, int> dbs = {{"a", 0}, {"b", 0}, {"c", 0}, {"p", 0}, {"q", 0}, {"db", 0}}; 0022 for (int d = 0; d < 40; d++) { 0023 dbs.insert("db" + QByteArray::number(d), 0); 0024 } 0025 Sink::Storage::DataStore store(testDataPath, {dbName, dbs}, Sink::Storage::DataStore::ReadWrite); 0026 auto transaction = store.createTransaction(Sink::Storage::DataStore::ReadWrite); 0027 for (int i = 0; i < count; i++) { 0028 if (!transaction) { 0029 qWarning() << "No valid transaction"; 0030 return -1; 0031 } 0032 transaction.openDatabase("a", nullptr, 0).write(QByteArray::number(i), "a"); 0033 transaction.openDatabase("b", nullptr, 0).write(QByteArray::number(i), "b"); 0034 transaction.openDatabase("c", nullptr, 0).write(QByteArray::number(i), "c"); 0035 transaction.openDatabase("p", nullptr, 0).write(QByteArray::number(i), "c"); 0036 transaction.openDatabase("q", nullptr, 0).write(QByteArray::number(i), "c"); 0037 if (i > (count/2)) { 0038 for (int d = 0; d < 40; d++) { 0039 transaction.openDatabase("db" + QByteArray::number(d), nullptr, 0).write(QByteArray::number(i), "a"); 0040 } 0041 } 0042 if ((i % 1000) == 0) { 0043 transaction.commit(); 0044 transaction = store.createTransaction(Sink::Storage::DataStore::ReadWrite); 0045 } 0046 } 0047 qWarning() << "Creating db done."; 0048 return 0; 0049 }