digiKam
Loading...
Searching...
No Matches
coredbaccess.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2007-03-18
7 * Description : Core database access wrapper.
8 *
9 * SPDX-FileCopyrightText: 2007-2008 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "digikam_export.h"
21#include "dbengineparameters.h"
22
23namespace Digikam
24{
25
26class CoreDbBackend;
27class CoreDB;
28class CoreDbWatch;
29class InitializationObserver;
30class DbEngineErrorHandler;
31class CoreDbAccessStaticPriv;
32
45class DIGIKAM_DATABASE_EXPORT CoreDbAccess
46{
47public:
48
50 {
52 DatabaseSlave
53 };
54
55public:
56
67
71 CoreDB* db() const;
72
76 CoreDbBackend* backend() const;
77
82 QString lastError();
83
87 void setLastError(const QString& error);
88
89public:
90
94 static DbEngineParameters parameters();
95
106 static void setParameters(const DbEngineParameters& parameters);
107 static void setParameters(const DbEngineParameters& parameters, ApplicationStatus status);
108
115 static bool checkReadyForUse(InitializationObserver* const observer = nullptr);
116
122 static void cleanUpDatabase();
123
127 static CoreDbWatch* databaseWatch();
128
132 static void initDbEngineErrorHandler(DbEngineErrorHandler* const errorhandler);
133
134private:
135
136 // Disable
137 explicit CoreDbAccess(bool);
138 CoreDbAccess(const CoreDbAccess&) = delete;
139 CoreDbAccess& operator=(const CoreDbAccess&) = delete;
140
141 friend class CoreDbAccessUnlock;
142 static CoreDbAccessStaticPriv* d;
143};
144
145// -----------------------------------------------------------------------------
146
148{
149public:
150
160 explicit CoreDbAccessUnlock(CoreDbAccess* const access);
162
163private:
164
165 // Disable
166 CoreDbAccessUnlock(const CoreDbAccessUnlock&) = delete;
167 CoreDbAccessUnlock& operator=(const CoreDbAccessUnlock&) = delete;
168
169 int count = 0;
170};
171
172} // namespace Digikam
Definition coredb.h:48
Definition coredbaccess.h:148
CoreDbAccessUnlock()
Definition coredbaccess.cpp:378
~CoreDbAccessUnlock()
Definition coredbaccess.cpp:425
Definition coredbaccess.h:46
ApplicationStatus
Definition coredbaccess.h:50
@ MainApplication
Definition coredbaccess.h:51
Definition coredbbackend.h:32
Definition coredbwatch.h:34
Definition dbengineerrorhandler.h:50
Definition dbengineparameters.h:39
Definition collectionscannerobserver.h:47
Definition datefolderview.cpp:34