libquentier
0.8.0
The library for rich desktop clients of Evernote service
Loading...
Searching...
No Matches
headers
quentier
synchronization
ISynchronizer.h
1
/*
2
* Copyright 2021-2024 Dmitry Ivanov
3
*
4
* This file is part of libquentier
5
*
6
* libquentier is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, version 3 of the License.
9
*
10
* libquentier is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with libquentier. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#pragma once
20
21
#include <quentier/local_storage/Fwd.h>
22
#include <quentier/synchronization/Fwd.h>
23
#include <quentier/synchronization/types/Fwd.h>
24
#include <quentier/types/Account.h>
25
#include <quentier/utility/Linkage.h>
26
#include <quentier/utility/cancelers/Fwd.h>
27
28
#include <qevercloud/types/TypeAliases.h>
29
30
#include <QFuture>
31
32
#include <memory>
33
#include <utility>
34
35
namespace
quentier {
36
37
class
Account;
38
39
}
// namespace quentier
40
41
namespace
quentier::synchronization {
42
43
class
QUENTIER_EXPORT
ISynchronizer
44
{
45
public
:
46
virtual
~ISynchronizer
()
noexcept
;
47
48
[[
nodiscard
]]
virtual
QFuture<std::pair<Account, IAuthenticationInfoPtr>
>
49
authenticateNewAccount() = 0;
50
51
[[
nodiscard
]]
virtual
QFuture<IAuthenticationInfoPtr>
authenticateAccount(
52
Account
account
) = 0;
53
54
using
SyncResult =
55
std::pair<QFuture<ISyncResultPtr>,
ISyncEventsNotifier
*>;
56
57
[[
nodiscard
]]
virtual
SyncResult synchronizeAccount(
58
Account
account
, local_storage::ILocalStoragePtr
localStorage
,
59
utility::cancelers::ICancelerPtr
canceler
,
60
ISyncOptionsPtr
options
=
nullptr
,
61
ISyncConflictResolverPtr
syncConflictResolver
=
nullptr
) = 0;
62
63
virtual
void
revokeAuthentication(qevercloud::UserID userId) = 0;
64
};
65
66
}
// namespace quentier::synchronization
quentier::Account
The Account class encapsulates some details about the account: its name, whether it is local or synch...
Definition
Account.h:38
quentier::Result
Definition
Result.h:34
quentier::synchronization::ISyncEventsNotifier
Definition
ISyncEventsNotifier.h:33
quentier::synchronization::ISynchronizer
Definition
ISynchronizer.h:44
Generated on Sun Jan 26 2025 00:00:00 for libquentier by
1.10.0