File indexing completed on 2025-02-16 13:03:42
0001 /* 0002 This file is part of the KFileMetaData project 0003 SPDX-FileCopyrightText: 2016 Varun Joshi <varunj.1011@gmail.com> 0004 SPDX-FileCopyrightText: 2016 Vishesh Handa <me@vhanda.in> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef KFILEMETADTA_WRITER_H 0010 #define KFILEMETADTA_WRITER_H 0011 0012 #include "kfilemetadata_export.h" 0013 #include <QStringList> 0014 0015 #include <memory> 0016 0017 namespace KFileMetaData 0018 { 0019 0020 class WriteData; 0021 class WriterCollection; 0022 class WriterPrivate; 0023 0024 /** 0025 * \class Writer writer.h <KFileMetaData/Writer> 0026 */ 0027 class KFILEMETADATA_EXPORT Writer 0028 { 0029 enum WriterPluginOwnership { 0030 AutoDeletePlugin, 0031 DoNotDeletePlugin, 0032 }; 0033 0034 public: 0035 Writer(Writer&&); 0036 virtual ~Writer(); 0037 0038 void write(const WriteData& data); 0039 QStringList mimetypes() const; 0040 0041 private: 0042 Writer(); 0043 Writer(const Writer&); 0044 0045 void operator =(const Writer&); 0046 0047 void setAutoDeletePlugin(WriterPluginOwnership autoDelete); 0048 0049 std::unique_ptr<WriterPrivate> d; 0050 friend class WriterPrivate; 0051 friend class WriterCollectionPrivate; 0052 }; 0053 } 0054 0055 #endif // KFILEMETADTA_WRITER_H