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 }