/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Mobility Components. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. For licensing terms and ** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef DATABASEOPERATIONS_P_H #define DATABASEOPERATIONS_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include QTM_USE_NAMESPACE QTM_BEGIN_NAMESPACE class QLandmark; class QLandmarkAbstractRequest; class QLandmarkCategory; class QLandmarkSortOrder; class QLandmarkNameSort; class QLandmarkFilter; QTM_END_NAMESPACE typedef QMap ERROR_MAP; class QLandmarkManagerEngineSqlite; class QLandmarkFileHandlerGpx; class QueryRun : public QRunnable { public: QueryRun(QLandmarkAbstractRequest *req, const QString &uri, QLandmarkManagerEngineSqlite *eng, unsigned int runId); ~QueryRun(); void run(); QLandmarkAbstractRequest *request; QString connectionName; QLandmarkManager::Error error; QString errorString; QMap errorMap; QString managerUri; volatile bool isCanceled; volatile bool isDeleted; QLandmarkManagerEngineSqlite *engine; unsigned int runId; }; class DatabaseOperations { public: QString connectionName; QString managerUri; QueryRun *queryRun; DatabaseOperations(); QLandmark retrieveLandmark(const QLandmarkId &landmarkId, QLandmarkManager::Error *error, QString *errorString) const; QList landmarkIds(const QLandmarkFilter& filter, const QList& sortOrders, int limit, int offset, QLandmarkManager::Error *error, QString *errorString) const; QList landmarks(const QLandmarkFilter& filter, const QList& sortOrders, int limit, int offset, QLandmarkManager::Error *error, QString *errorString) const ; QList landmarks(const QList &landmarkIds, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString) const; bool saveLandmarkHelper(QLandmark* landmark, QLandmarkManager::Error *error, QString *errorString); bool saveLandmark(QLandmark* landmark, QLandmarkManager::Error *error, QString *errorString); bool saveLandmarks(QList * landmark, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString); bool removeLandmark(const QLandmarkId &landmarkId, QLandmarkManager::Error *error, QString *errorString); bool removeLandmarks(const QList &landmarkIds, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString); QList categoryIds(const QLandmarkNameSort &nameSort, int limit, int offet, QLandmarkManager::Error *error, QString *errorString) const; QLandmarkCategory category(const QLandmarkCategoryId &landmarkCategoryId, QLandmarkManager::Error *error, QString *errorString) const; QList categories(const QList &landmarkCategoryIds, const QLandmarkNameSort &nameSort, int limit, int offset, QLandmarkManager::Error *error, QString *errorString, bool needAll) const; QList categories(const QList &landmarkCategoryIds, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString) const; bool saveCategoryHelper(QLandmarkCategory *category, QLandmarkManager::Error *error, QString *errorString); bool saveCategory(QLandmarkCategory *category, QLandmarkManager::Error *error, QString *errorString); bool saveCategories(QList * categories, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString); bool removeCategoryHelper(const QLandmarkCategoryId &categoryId, QLandmarkManager::Error *error, QString *errorString); bool removeCategory(const QLandmarkCategoryId &categoryId, QLandmarkManager::Error *error, QString *errorString); bool removeCategories(const QList &categoryIds, QMap *errorMap, QLandmarkManager::Error *error, QString *errorString); bool importLandmarks(QIODevice *device, const QString &format, QLandmarkManager::TransferOption option, const QLandmarkCategoryId &categoryId, QLandmarkManager::Error *error, QString *errorString, QueryRun *queryRun =0, QList *landmarkIds = 0); bool exportLandmarks(QIODevice *device, const QString &format, const QList &landmarkIds, QLandmarkManager::TransferOption, QLandmarkManager::Error *error, QString *errorString) const; bool importLandmarksLmx(QIODevice *device, QLandmarkManager::TransferOption option, const QLandmarkCategoryId &categoryId, QLandmarkManager::Error *error, QString *errorString, QueryRun *queryRun=0, QList *landmarkIds = 0); bool importLandmarksGpx(QIODevice *device, QLandmarkManager::TransferOption option, const QLandmarkCategoryId &categoryId, QLandmarkManager::Error *error, QString *errorString, QueryRun *queryRun =0, QList *landmarkIds = 0); bool exportLandmarksLmx(QIODevice *device, const QList &landmarkIds, QLandmarkManager::TransferOption option, QLandmarkManager::Error *error, QString *errorString) const ; bool exportLandmarksGpx(QIODevice *device, const QList &landmarkIds, QLandmarkManager::Error *error, QString *errorString) const; QLandmarkManager::SupportLevel filterSupportLevel(const QLandmarkFilter &filter) const; QLandmarkManager::SupportLevel sortOrderSupportLevel(const QLandmarkSortOrder &sortOrders) const; static const QStringList coreAttributes; static const QStringList coreGenericAttributes; static const QStringList supportedSearchableAttributes; static const QStringList coreCategoryAttributes; static const QStringList coreGenericCategoryAttributes; }; #endif