~ubuntu-branches/ubuntu/quantal/kde-runtime/quantal

« back to all changes in this revision

Viewing changes to nepomuk/services/storage/ontologyloader.h

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2012-06-03 21:50:00 UTC
  • mto: This revision was merged to the branch mainline in revision 21.
  • Revision ID: package-import@ubuntu.com-20120603215000-vn7oarsq0ynrydj5
Tags: upstream-4.8.80
Import upstream version 4.8.80

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* This file is part of the KDE Project
2
 
   Copyright (c) 2007-2010 Sebastian Trueg <trueg@kde.org>
3
 
 
4
 
   This library is free software; you can redistribute it and/or
5
 
   modify it under the terms of the GNU Library General Public
6
 
   License version 2 as published by the Free Software Foundation.
7
 
 
8
 
   This library is distributed in the hope that it will be useful,
9
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
 
   Library General Public License for more details.
12
 
 
13
 
   You should have received a copy of the GNU Library General Public License
14
 
   along with this library; see the file COPYING.LIB.  If not, write to
15
 
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16
 
   Boston, MA 02110-1301, USA.
17
 
*/
18
 
 
19
 
#ifndef _NEPOMUK_SERVER_ONTOLOGY_LOADER_H_
20
 
#define _NEPOMUK_SERVER_ONTOLOGY_LOADER_H_
21
 
 
22
 
#include <QtCore/QObject>
23
 
#include <QtCore/QUrl>
24
 
 
25
 
namespace Soprano {
26
 
    class Model;
27
 
}
28
 
 
29
 
class KJob;
30
 
 
31
 
 
32
 
// Hint: Using QString instead of QUrl for URIs since this API will be exported via DBus and not used otherwise
33
 
namespace Nepomuk {
34
 
    class OntologyLoader : public QObject
35
 
    {
36
 
        Q_OBJECT
37
 
 
38
 
    public:
39
 
        OntologyLoader( Soprano::Model* model, QObject* parent = 0 );
40
 
        ~OntologyLoader();
41
 
 
42
 
    public Q_SLOTS:
43
 
        /**
44
 
         * Tries to find the ontology \p uri in the local Nepomuk store.
45
 
         * \return The context (named graph) storing the ontology's statements
46
 
         * or an invalid URI if the ontology could not be found.
47
 
         */
48
 
        QString findOntologyContext( const QString& uri );
49
 
 
50
 
        /**
51
 
         * Update all installed ontologies that changed since the last update.
52
 
         */
53
 
        void updateLocalOntologies();
54
 
 
55
 
        /**
56
 
         * Update all installed ontologies, independently of their status.
57
 
         */
58
 
        void updateAllLocalOntologies();
59
 
 
60
 
        /**
61
 
         * Try to retrieve an ontology from the web.
62
 
         * On success ontologyUpdated will be emitted. If the
63
 
         * retrieval failed, ontologyUpdateFailed will be
64
 
         * emitted.
65
 
         */
66
 
        void importOntology( const QString& url );
67
 
 
68
 
    Q_SIGNALS:
69
 
        /**
70
 
         * Emitted once the update of the ontologies is done.
71
 
         * This signal is emitted whenever the ontologies change
72
 
         * and needed updating.
73
 
         */
74
 
        void ontologyLoadingFinished( Nepomuk::OntologyLoader* );
75
 
 
76
 
        /**
77
 
         * Emitted once an ontology has been updated. This holds for both
78
 
         * locally installed ontology files (which are read automaticall)
79
 
         * and those retrieved from the web via importOntology
80
 
         */
81
 
        void ontologyUpdated( const QString& uri );
82
 
 
83
 
        /**
84
 
         * Emitted if updating an ontology failed. This holds for both
85
 
         * locally installed ontology files (parsing may fail) and for
86
 
         * those imported via importOntology.
87
 
         */
88
 
        void ontologyUpdateFailed( const QString& uri, const QString& error );
89
 
 
90
 
    private Q_SLOTS:
91
 
        // a little async updating
92
 
        void updateNextOntology();
93
 
        void slotGraphRetrieverResult( KJob* job );
94
 
 
95
 
    private:
96
 
        class Private;
97
 
        Private* const d;
98
 
    };
99
 
}
100
 
 
101
 
#endif