1/*
2 * <one line to give the library's name and an idea of what it does.>
3 * Copyright (C) 2012 Vishesh Handa <me@vhanda.in>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 */
20
21#ifndef _KFILEMETADATA_EXTRACTORPLUGINMANAGER_H
22#define _KFILEMETADATA_EXTRACTORPLUGINMANAGER_H
23
24#include <QtCore/QUrl>
25#include "kfilemetadata_export.h"
26
27namespace KFileMetaData
28{
29
30class ExtractorPlugin;
31
32/**
33 * \class ExtractorPluginManager extractorpluginmanager.h
34 *
35 * \brief The ExtractorPluginManager is a helper class which internally
36 * loads all the extractor plugins. It can be used to fetch a certain
37 * subset of thse pulgins based on a given mimetype.
38 *
39 * Once the appropriate plugins have been fetched, an ExtractionResult
40 * should be created and passed to the plugin's extract function.
41 *
42 * \author Vishesh Handa <me@vhanda.in>
43 */
44class KFILEMETADATA_EXPORT ExtractorPluginManager : public QObject
45{
46public:
47 explicit ExtractorPluginManager(QObject* parent = 0);
48 virtual ~ExtractorPluginManager();
49
50 /**
51 * Fetch the extractors which can be used to extract
52 * data for the respective file with the given mimetype.
53 *
54 * If no match is found then all the plugins whose mimetype list
55 * starts with \p mimetype are returned.
56 */
57 QList<ExtractorPlugin*> fetchExtractors(const QString& mimetype) const;
58
59private:
60 class Private;
61 Private* d;
62};
63}
64
65#endif // _KFILEMETADATA_EXTRACTORPLUGINMANAGER_H
66