Akonadi

handlerhelper.h
1 /***************************************************************************
2  * SPDX-FileCopyrightText: 2006 Tobias Koenig <[email protected]> *
3  * *
4  * SPDX-License-Identifier: LGPL-2.0-or-later *
5  ***************************************************************************/
6 
7 #pragma once
8 
9 #include "entities.h"
10 
11 #include <QByteArray>
12 #include <QStack>
13 #include <QString>
14 
15 namespace Akonadi
16 {
17 class Scope;
18 class ImapSet;
19 
20 namespace Protocol
21 {
22 class Ancestor;
23 class CachePolicy;
24 class FetchCollectionsResponse;
25 class TagFetchScope;
26 class FetchTagsResponse;
27 using FetchTagsResponsePtr = QSharedPointer<FetchTagsResponse>;
28 class FetchRelationsResponse;
29 using FetchRelationsResponsePtr = QSharedPointer<FetchRelationsResponse>;
30 }
31 
32 namespace Server
33 {
34 class CommandContext;
35 class Connection;
36 class AkonadiServer;
37 
38 /**
39  Helper functions for command handlers.
40 */
41 class HandlerHelper
42 {
43 public:
44  /**
45  Returns the collection identified by the given id or path.
46  */
48 
49  /**
50  Returns the full path for the given collection.
51  */
52  static QString pathForCollection(const Collection &col);
53 
54  /**
55  Returns the protocol representation of the cache policy of the given
56  Collection object.
57  */
58  static Protocol::CachePolicy cachePolicyResponse(const Collection &col);
59 
60  /**
61  Returns the protocol representation of the given collection.
62  Make sure DataStore::activeCachePolicy() has been called before to include
63  the effective cache policy
64  */
65  static Protocol::FetchCollectionsResponse fetchCollectionsResponse(AkonadiServer &akonadi, const Collection &col);
66 
67  /**
68  Returns the protocol representation of the given collection.
69  Make sure DataStore::activeCachePolicy() has been called before to include
70  the effective cache policy
71  */
72  static Protocol::FetchCollectionsResponse
73  fetchCollectionsResponse(AkonadiServer &akonadi,
74  const Collection &col,
75  const CollectionAttribute::List &attributeList,
76  bool includeStatistics = false,
77  int ancestorDepth = 0,
78  const QStack<Collection> &ancestors = QStack<Collection>(),
80  const QStringList &mimeTypes = QStringList());
81 
82  /**
83  Returns the protocol representation of a collection ancestor chain.
84  */
85  static QVector<Protocol::Ancestor> ancestorsResponse(int ancestorDepth,
86  const QStack<Collection> &ancestors,
88 
89  static Protocol::FetchTagsResponse fetchTagsResponse(const Tag &tag, const Protocol::TagFetchScope &tagFetchScope, Connection *connection = nullptr);
90 
91  static Protocol::FetchRelationsResponse fetchRelationsResponse(const Relation &relation);
92 
93  /**
94  Converts a bytearray list of flag names into flag records.
95  @throws HandlerException on errors during database operations
96  */
97  static Flag::List resolveFlags(const QSet<QByteArray> &flagNames);
98 
99  /**
100  Converts a imap set of tags into tag records.
101  @throws HandlerException on errors during database operations
102  */
103  static Tag::List resolveTagsByUID(const ImapSet &tags);
104 
105  static Tag::List resolveTagsByGID(const QStringList &tagsGIDs);
106 
107  static Tag::List resolveTagsByRID(const QStringList &tagsRIDs, const CommandContext &context);
108 
109  static Collection collectionFromScope(const Scope &scope, const CommandContext &context);
110 
111  static Tag::List tagsFromScope(const Scope &scope, const CommandContext &context);
112 };
113 
114 } // namespace Server
115 } // namespace Akonadi
An Akonadi Tag.
Definition: tag.h:25
Represents a collection of PIM items.
Definition: collection.h:61
An Akonadi Relation.
Definition: relation.h:39
static Tag::List resolveTagsByUID(const ImapSet &tags)
Converts a imap set of tags into tag records.
static Protocol::CachePolicy cachePolicyResponse(const Collection &col)
Returns the protocol representation of the cache policy of the given Collection object.
static QString pathForCollection(const Collection &col)
Returns the full path for the given collection.
static QVector< Protocol::Ancestor > ancestorsResponse(int ancestorDepth, const QStack< Collection > &ancestors, const QStack< CollectionAttribute::List > &_ancestorsAttributes=QStack< CollectionAttribute::List >())
Returns the protocol representation of a collection ancestor chain.
static Protocol::FetchCollectionsResponse fetchCollectionsResponse(AkonadiServer &akonadi, const Collection &col)
Returns the protocol representation of the given collection.
static Collection collectionFromIdOrName(const QByteArray &id)
Returns the collection identified by the given id or path.
static Flag::List resolveFlags(const QSet< QByteArray > &flagNames)
Converts a bytearray list of flag names into flag records.
An Connection represents one connection of a client to the server.
Definition: connection.h:46
Helper integration between Akonadi and Qt.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:52:16 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.