File indexing completed on 2025-02-16 13:03:41
0001 /* 0002 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #ifndef KFILEMETADATA_EXTRACTOR_H 0008 #define KFILEMETADATA_EXTRACTOR_H 0009 0010 #include "kfilemetadata_export.h" 0011 #include <QStringList> 0012 #include <QVariantMap> 0013 0014 #include <memory> 0015 0016 namespace KFileMetaData { 0017 0018 class ExtractionResult; 0019 class ExtractorCollection; 0020 class ExtractorPlugin; 0021 class ExtractorPrivate; 0022 0023 /** 0024 * \class Extractor extractor.h <KFileMetaData/Extractor> 0025 */ 0026 class KFILEMETADATA_EXPORT Extractor 0027 { 0028 enum ExtractorPluginOwnership { 0029 AutoDeletePlugin, 0030 DoNotDeletePlugin, 0031 }; 0032 0033 public: 0034 Extractor(Extractor&&); 0035 virtual ~Extractor() noexcept; 0036 0037 void extract(ExtractionResult* result); 0038 QStringList mimetypes() const; 0039 QVariantMap extractorProperties() const; 0040 0041 private: 0042 Extractor(); 0043 Extractor(const Extractor&); 0044 0045 void operator =(const Extractor&); 0046 0047 void setExtractorPlugin(ExtractorPlugin *extractorPlugin); 0048 0049 void setAutoDeletePlugin(ExtractorPluginOwnership autoDelete); 0050 0051 void setMetaData(const QVariantMap &metaData); 0052 0053 friend class ExtractorCollection; 0054 friend class ExtractorCollectionPrivate; 0055 friend class ExtractorPrivate; 0056 std::unique_ptr<ExtractorPrivate> d; 0057 }; 0058 } 0059 0060 #endif // KFILEMETADATA_EXTRACTOR_H