File indexing completed on 2025-02-23 04:47:40

0001 /*
0002     This file is part of Akonadi Contact.
0003 
0004     SPDX-FileCopyrightText: 2009 Tobias Koenig <tokoe@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #pragma once
0010 
0011 #include "akonadi-contact-core_export.h"
0012 
0013 #include <Akonadi/Attribute>
0014 
0015 #include <QVariant>
0016 
0017 #include <memory>
0018 
0019 namespace Akonadi
0020 {
0021 class ContactMetaDataAttributePrivate;
0022 
0023 /**
0024  * @short Attribute to store contact specific meta data.
0025  *
0026  * @author Tobias Koenig <tokoe@kde.org>
0027  */
0028 class AKONADI_CONTACT_CORE_EXPORT ContactMetaDataAttribute : public Akonadi::Attribute
0029 {
0030 public:
0031     /**
0032      * Creates a new contact meta data attribute.
0033      */
0034     ContactMetaDataAttribute();
0035 
0036     /**
0037      * Destroys the contact meta data attribute.
0038      */
0039     ~ContactMetaDataAttribute() override;
0040 
0041     /**
0042      * Sets the meta @p data.
0043      */
0044     void setMetaData(const QVariantMap &data);
0045 
0046     /**
0047      * Returns the meta data.
0048      */
0049     QVariantMap metaData() const;
0050 
0051     QByteArray type() const override;
0052     Attribute *clone() const override;
0053     QByteArray serialized() const override;
0054     void deserialize(const QByteArray &data) override;
0055 
0056 private:
0057     //@cond PRIVATE
0058     std::unique_ptr<ContactMetaDataAttributePrivate> const d;
0059     //@endcond
0060 };
0061 }