Akonadi

collectionquotaattribute.h
1 /*
2  SPDX-FileCopyrightText: 2009 Kevin Ottens <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "akonadicore_export.h"
10 #include "attribute.h"
11 
12 #include <memory>
13 
14 namespace Akonadi
15 {
16 class CollectionQuotaAttributePrivate;
17 
18 /**
19  * @short Attribute that provides quota information for a collection.
20  *
21  * This attribute class provides quota information (e.g. current fill value
22  * and maximum fill value) for an Akonadi collection.
23  *
24  * Example:
25  *
26  * @code
27  *
28  * using namespace Akonadi;
29  *
30  * const Collection collection = collectionFetchJob->collections().at(0);
31  * if ( collection.hasAttribute<CollectionQuotaAttribute>() ) {
32  * const CollectionQuotaAttribute *attribute = collection.attribute<CollectionQuotaAttribute>();
33  * qDebug() << "current value" << attribute->currentValue();
34  * }
35  *
36  * @endcode
37  *
38  * @author Kevin Ottens <[email protected]>
39  * @since 4.4
40  */
41 class AKONADICORE_EXPORT CollectionQuotaAttribute : public Akonadi::Attribute
42 {
43 public:
44  /**
45  * Creates a new collection quota attribute.
46  */
47  explicit CollectionQuotaAttribute();
48 
49  /**
50  * Creates a new collection quota attribute with initial values.
51  *
52  * @param currentValue The current quota value in bytes.
53  * @param maxValue The maximum quota value in bytes.
54  */
55  CollectionQuotaAttribute(qint64 currentValue, qint64 maxValue);
56 
57  /**
58  * Destroys the collection quota attribute.
59  */
60  ~CollectionQuotaAttribute() override;
61 
62  /**
63  * Sets the current quota @p value for the collection.
64  *
65  * @param value The current quota value in bytes.
66  */
67  void setCurrentValue(qint64 value);
68 
69  /**
70  * Sets the maximum quota @p value for the collection.
71  *
72  * @param value The maximum quota value in bytes.
73  */
74  void setMaximumValue(qint64 value);
75 
76  /**
77  * Returns the current quota value in bytes.
78  */
79  qint64 currentValue() const;
80 
81  /**
82  * Returns the maximum quota value in bytes.
83  */
84  qint64 maximumValue() const;
85 
86  QByteArray type() const override;
87  Attribute *clone() const override;
88  QByteArray serialized() const override;
89  void deserialize(const QByteArray &data) override;
90 
91 private:
92  /// @cond PRIVATE
93  const std::unique_ptr<CollectionQuotaAttributePrivate> d;
94  /// @endcond
95 };
96 
97 } // namespace Akonadi
98 
Provides interface for custom attributes for Entity.
Definition: attribute.h:124
Attribute that provides quota information for a collection.
Helper integration between Akonadi and Qt.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sat Jul 2 2022 06:41:47 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.