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 }