• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

Nepomuk-Core

  • sources
  • kde-4.12
  • kdelibs
  • nepomuk-core
  • services
  • fileindexer
  • indexer
extractorplugin.h
Go to the documentation of this file.
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 EXTRACTOR_H
22 #define EXTRACTOR_H
23 
24 #include <QtCore/QStringList>
25 #include <QtCore/QDateTime>
26 
27 #include "simpleresourcegraph.h"
28 #include "simpleresource.h"
29 #include "nepomuk_export.h"
30 
31 #include <KService>
32 
33 #ifndef NEPOMUK_EXTRACTOR_EXPORT
34 # if defined(KDELIBS_STATIC_LIBS)
35  /* No export/import for static libraries */
36 # define NEPOMUK_EXTRACTOR_EXPORT
37 # elif defined(MAKE_NEPOMUKEXTRACTOR_LIB)
38  /* We are building this library */
39 # define NEPOMUK_EXTRACTOR_EXPORT KDE_EXPORT
40 # else
41  /* We are using this library */
42 # define NEPOMUK_EXTRACTOR_EXPORT KDE_IMPORT
43 # endif
44 #endif
45 
46 namespace Nepomuk2 {
47 
60  class NEPOMUK_EXTRACTOR_EXPORT ExtractorPlugin : public QObject
61  {
62  Q_OBJECT
63  public:
64  ExtractorPlugin(QObject* parent);
65  virtual ~ExtractorPlugin();
66 
71  enum ExtractingCritera {
76  BasicMimeType = 1,
77 
82  Custom = 2
83  };
84 
94  virtual ExtractingCritera criteria();
95 
103  virtual bool shouldExtract(const QUrl& url, const QString& mimeType);
104 
113  virtual QStringList mimetypes();
114 
125  virtual SimpleResourceGraph extract(const QUrl& resUri, const QUrl& fileUrl, const QString& mimeType) = 0;
126 
127  //
128  // Helper functions
129  //
130 
134  static QDateTime dateTimeFromString(const QString& dateString);
135 
140  static QList<SimpleResource> contactsFromString(const QString& string);
141 
147  static int maxPlainTextSize();
148 
149  static void setMaxPlainTextSize(int size);
150  static void resetMaxPlainTextSize();
151 
152  private:
153  static int s_plainTextSize;
154  };
155 }
156 
163 #define NEPOMUK_EXPORT_EXTRACTOR( classname, libname ) \
164 K_PLUGIN_FACTORY(factory, registerPlugin<classname>();) \
165 K_EXPORT_PLUGIN(factory(#libname))
166 
167 #endif // EXTRACTOR_H
Nepomuk2::ExtractorPlugin
The ExtractorPlugin is the base class for all file metadata extractors.
Definition: extractorplugin.h:60
QObject
NEPOMUK_EXTRACTOR_EXPORT
#define NEPOMUK_EXTRACTOR_EXPORT
Definition: extractorplugin.h:42
Nepomuk2::SimpleResourceGraph
Definition: simpleresourcegraph.h:48
simpleresource.h
simpleresourcegraph.h
Nepomuk2::ExtractorPlugin::ExtractingCritera
ExtractingCritera
Each Plugin provides an extracting critera which determines when the plugin should be called...
Definition: extractorplugin.h:71
nepomuk_export.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:48:08 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Nepomuk-Core

Skip menu "Nepomuk-Core"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal