KFileMetaData

extractorcollection.h
1/*
2 SPDX-FileCopyrightText: 2012 Vishesh Handa <me@vhanda.in>
3
4 SPDX-License-Identifier: LGPL-2.1-or-later
5*/
6
7#ifndef _KFILEMETADATA_EXTRACTORCOLLECTION_H
8#define _KFILEMETADATA_EXTRACTORCOLLECTION_H
9
10#include "extractor.h"
11#include "kfilemetadata_export.h"
12
13#include <memory>
14
15namespace KFileMetaData
16{
17class ExtractorCollectionPrivate;
18/**
19 * \class ExtractorCollection extractorcollection.h <KFileMetaData/ExtractorCollection>
20 *
21 * \brief The ExtractorCollection is a helper class which internally
22 * loads all the extractor plugins.
23 *
24 * It can be used to fetch a certain
25 * subset of these plugins based on a given mimetype.
26 *
27 * Once the appropriate plugins have been fetched, an ExtractionResult
28 * should be created and passed to the plugin's extract function.
29 *
30 * \author Vishesh Handa <me@vhanda.in>
31 */
32class KFILEMETADATA_EXPORT ExtractorCollection
33{
34public:
35 explicit ExtractorCollection();
36 virtual ~ExtractorCollection();
37
38 /**
39 * Fetch the extractors which can be used to extract
40 * data for the respective file with the given MIME type.
41 *
42 * If no match is found then the best matching plugins
43 * are returned, determined by MIME type inheritance.
44 *
45 * \sa QMimeType::allAncestors
46 */
47 QList<Extractor*> fetchExtractors(const QString& mimetype) const;
48
49private:
50 friend class ExtractorCollectionTest;
51 // exported for ExtractorCollectionTest
52 QList<Extractor*> allExtractors();
53
54 const std::unique_ptr<ExtractorCollectionPrivate> d;
55};
56}
57
58#endif
QList< Extractor * > fetchExtractors(const QString &mimetype) const
Fetch the extractors which can be used to extract data for the respective file with the given MIME ty...
The KFileMetaData namespace.
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 21 2025 11:53:46 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.