KFileMetaData 5.109.0
extractor.h
1/*
2 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in>
3
4 SPDX-License-Identifier: LGPL-2.1-or-later
5*/
6
7#ifndef KFILEMETADATA_EXTRACTOR_H
8#define KFILEMETADATA_EXTRACTOR_H
9
10#include "kfilemetadata_export.h"
11#include <QStringList>
12#include <QVariantMap>
13
14#include <memory>
15
16namespace KFileMetaData {
17
18class ExtractionResult;
19class ExtractorCollection;
20class ExtractorPlugin;
21class ExtractorPrivate;
22
26class KFILEMETADATA_EXPORT Extractor
27{
28 enum ExtractorPluginOwnership {
29 AutoDeletePlugin,
30 DoNotDeletePlugin,
31 };
32
33public:
34 Extractor(Extractor&&);
35 virtual ~Extractor() noexcept;
36
37 void extract(ExtractionResult* result);
38 QStringList mimetypes() const;
39 QVariantMap extractorProperties() const;
40
41private:
42 Extractor();
43 Extractor(const Extractor&);
44
45 void operator =(const Extractor&);
46
47 void setExtractorPlugin(ExtractorPlugin *extractorPlugin);
48
49 void setAutoDeletePlugin(ExtractorPluginOwnership autoDelete);
50
51 void setMetaData(const QVariantMap &metaData);
52
53 friend class ExtractorCollection;
54 friend class ExtractorCollectionPrivate;
55 friend class ExtractorPrivate;
56 std::unique_ptr<ExtractorPrivate> d;
57};
58}
59
60#endif // KFILEMETADATA_EXTRACTOR_H