File indexing completed on 2024-05-05 16:09:03

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