digiKam
Loading...
Searching...
No Matches
facedbaccess.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 : 2009-05-29
7 * Description : Face database access wrapper.
8 *
9 * SPDX-FileCopyrightText: 2007-2009 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 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Local includes
20
21#include "digikam_export.h"
22#include "dbengineparameters.h"
24#include "facescansettings.h"
25
26namespace Digikam
27{
28
29class FaceDb;
30class FaceDbAccessStaticPriv;
31class FaceDbBackend;
32class DbEngineErrorHandler;
33
34class DIGIKAM_GUI_EXPORT FaceDbAccess
35{
36public:
37
45
46 FaceDb* db() const;
47 FaceDbBackend* backend() const;
48 const QString& lastError() const;
49
53 void setLastError(const QString& error);
54
55 static DbEngineParameters parameters();
56
57public:
58
59 static void initDbEngineErrorHandler(DbEngineErrorHandler* const errorhandler);
60 static void setParameters(const DbEngineParameters& parameters, FaceScanSettings::FaceRecognitionModel recognizeModel);
61 static bool checkReadyForUse(InitializationObserver* const observer);
62 static bool isInitialized();
63 static void cleanUpDatabase();
64
65private:
66
67 explicit FaceDbAccess(bool);
68
69 // Disable
70 FaceDbAccess(const FaceDbAccess&) = delete;
71 FaceDbAccess& operator=(const FaceDbAccess&) = delete;
72
73private:
74
75 friend class FaceDbAccessUnlock;
76 static FaceDbAccessStaticPriv* d;
77
78 FaceScanSettings::FaceRecognitionModel recognizeModel = FaceScanSettings::FaceRecognitionModel::OpenFace;
79};
80
81// ------------------------------------------------------------------------------------------
82
84{
85public:
86
96 explicit FaceDbAccessUnlock(FaceDbAccess* const access);
98
99private:
100
101 int count = 0;
102
103private:
104
105 // Disable
106 FaceDbAccessUnlock(const FaceDbAccessUnlock&) = delete;
107 FaceDbAccessUnlock& operator=(const FaceDbAccessUnlock&) = delete;
108};
109
110} // namespace Digikam
Definition dbengineerrorhandler.h:50
Definition dbengineparameters.h:39
Definition facedbaccess.h:84
~FaceDbAccessUnlock()
Definition facedbaccess.cpp:342
FaceDbAccessUnlock()
Definition facedbaccess.cpp:295
Definition facedbaccess.h:35
Definition facedbbackend.h:30
Definition facedb.h:43
FaceRecognitionModel
Definition facescansettings.h:89
Definition collectionscannerobserver.h:47
Definition datefolderview.cpp:34