Skip to content
Snippets Groups Projects
Select Git revision
  • 043ef8da72ac1fba134f32c3c0154aa56a4ea0f5
  • master default
  • cmake_fixes
  • pulls/1772757862/750
  • copilot/fix-770
  • windows_ci_static
  • c_link
  • cpack
  • windows_ci
  • cert_pk_id
  • proxy_push_result
  • cnode_put_id
  • update-windows-build
  • proxy
  • resubscribe_on_token_change
  • actions
  • client_mode
  • llhttp
  • search_node_add
  • crypto_aes_gcm_argon2
  • ios_notifications
  • v3.4.0
  • v3.3.1
  • v3.3.1rc1
  • v3.3.1rc2
  • v3.3.0
  • v3.2.0
  • v3.1.11
  • v3.1.10
  • v3.1.9
  • v3.1.8.2
  • v3.1.8.1
  • v3.1.8
  • v3.1.7
  • v3.1.6
  • v3.1.5
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1
  • v3.0.1
41 results

rng.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    database.cpp 24.07 KiB
    /****************************************************************************
     *   Copyright (C) 2017 Savoir-faire Linux                                  *
     *   Author: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>             *
     *   Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com>           *
     *   Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>       *
     *                                                                          *
     *   This library is free software; you can redistribute it and/or          *
     *   modify it under the terms of the GNU Lesser General Public             *
     *   License as published by the Free Software Foundation; either           *
     *   version 2.1 of the License, or (at your option) any later version.     *
     *                                                                          *
     *   This library is distributed in the hope that it will be useful,        *
     *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
     *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU      *
     *   Lesser General Public License for more details.                        *
     *                                                                          *
     *   You should have received a copy of the GNU General Public License      *
     *   along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
     ***************************************************************************/
    #include "database.h"
    
    // Qt
    #include <QtCore/QDir>
    #include <QtCore/QDebug>
    #include <QtCore/QFile>
    #include <QtCore/QJsonArray>
    #include <QtCore/QJsonDocument>
    #include <QtCore/QJsonObject>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlError>
    #include <QtSql/QSqlRecord>
    #include <QtCore/QStandardPaths>
    #include <QtCore/QVariant>
    #include <QDir>
    
    // Std
    #include <sstream>
    
    // Data
    #include "api/interaction.h"
    
    // Lrc for migrations
    #include "person.h"
    #include "account.h"
    #include "accountmodel.h"
    #include "private/vcardutils.h"
    
    namespace lrc
    {
    
    using namespace api;
    
    static constexpr auto VERSION = "1";
    static constexpr auto NAME = "ring.db";
    
    Database::Database()
    : QObject()
    {
        if (not QSqlDatabase::drivers().contains("QSQLITE")) {
            throw std::runtime_error("QSQLITE not supported");
        }
    
        {
            // create data directory if not created yet
            QDir dataDir;
            dataDir.mkpath(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
        }
    
        // initalize the database.
        db_ = QSqlDatabase::addDatabase("QSQLITE");