QtPass
2.0.0
Developer documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
passbackendfactory.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2016 Anne Jan Brouwer
2
// SPDX-License-Identifier: GPL-3.0-or-later
8
#ifndef SRC_PASSBACKENDFACTORY_H_
9
#define SRC_PASSBACKENDFACTORY_H_
10
11
#include "
imitatepass.h
"
12
#include "
realpass.h
"
13
14
#include <QScopedPointer>
15
16
class
Pass
;
17
29
class
PassBackendFactory
{
30
public
:
37
static
auto
getPass
() ->
Pass
*;
42
static
auto
getRealPass
() ->
RealPass
*;
47
static
auto
getImitatePass
() ->
ImitatePass
*;
54
static
void
invalidate
();
61
static
auto
isIdle
() -> bool;
62
63
private
:
68
static
Pass
*
pass
;
69
// Go via pointer to avoid dynamic initialization, due to "random"
70
// initialization order relative to other globals, especially around QObject
71
// metadata dynamic initialization can lead to crashes depending on compiler,
72
// linker etc.
74
static
QScopedPointer<RealPass>
realPass
;
76
static
QScopedPointer<ImitatePass>
imitatePass
;
77
79
PassBackendFactory
() =
default
;
80
};
81
82
#endif
// SRC_PASSBACKENDFACTORY_H_
ImitatePass
Implementation that imitates 'pass' when the real tool is unavailable.
Definition
imitatepass.h:40
PassBackendFactory::getPass
static auto getPass() -> Pass *
Get the active backend, constructing and initialising it on first use after construction or invalidat...
Definition
passbackendfactory.cpp:22
PassBackendFactory::imitatePass
static QScopedPointer< ImitatePass > imitatePass
The gpg and git backend, constructed on first use.
Definition
passbackendfactory.h:76
PassBackendFactory::pass
static Pass * pass
The backend getPass() last selected; null until the first call and again after invalidate()....
Definition
passbackendfactory.h:68
PassBackendFactory::PassBackendFactory
PassBackendFactory()=default
Not constructible; the class has only static members.
PassBackendFactory::getRealPass
static auto getRealPass() -> RealPass *
Get the lazily-constructed RealPass backend.
Definition
passbackendfactory.cpp:41
PassBackendFactory::realPass
static QScopedPointer< RealPass > realPass
The pass backend, constructed on first use.
Definition
passbackendfactory.h:74
PassBackendFactory::isIdle
static auto isIdle() -> bool
Whether neither backend runs or waits for anything: after a switch of backend the previous one is kep...
Definition
passbackendfactory.cpp:57
PassBackendFactory::getImitatePass
static auto getImitatePass() -> ImitatePass *
Get the lazily-constructed ImitatePass backend.
Definition
passbackendfactory.cpp:48
PassBackendFactory::invalidate
static void invalidate()
Forget the currently active backend.
Definition
passbackendfactory.cpp:62
Pass
Abstract base class for password store operations.
Definition
pass.h:75
RealPass
Implementation of Pass that wraps the 'pass' command-line tool.
Definition
realpass.h:32
imitatepass.h
ImitatePass, the backend that does what pass does by running gpg and git itself.
realpass.h
RealPass, the backend that hands every store operation to the pass command-line tool.
src
passbackendfactory.h
Generated by
1.18.0