00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SOPRANO_PARSER_H
00023 #define SOPRANO_PARSER_H
00024
00025 #include "plugin.h"
00026 #include "soprano_export.h"
00027 #include "sopranotypes.h"
00028 #include "error.h"
00029
00030 #include <QtCore/QObject>
00031
00032 class QTextStream;
00033 class QUrl;
00034
00035
00036 namespace Soprano
00037 {
00038 class StatementIterator;
00039
00069 class SOPRANO_EXPORT Parser : public Plugin, public Error::ErrorCache
00070 {
00071 public:
00072 virtual ~Parser();
00073
00081 virtual RdfSerializations supportedSerializations() const = 0;
00082
00091 virtual QStringList supportedUserSerializations() const;
00092
00104 bool supportsSerialization( RdfSerialization s, const QString& userSerialization = QString() ) const;
00105
00122 virtual StatementIterator parseFile( const QString& filename, const QUrl& baseUri, RdfSerialization serialization, const QString& userSerialization = QString() ) const;
00123
00139 virtual StatementIterator parseString( const QString& data, const QUrl& baseUri, RdfSerialization serialization, const QString& userSerialization = QString() ) const;
00140
00154 virtual StatementIterator parseStream( QTextStream& stream, const QUrl& baseUri, RdfSerialization serialization, const QString& userSerialization = QString() ) const = 0;
00155
00156 protected:
00157 Parser( const QString& name );
00158
00159 private:
00160 class Private;
00161 Private* const d;
00162 };
00163 }
00164
00165 Q_DECLARE_INTERFACE(Soprano::Parser, "org.soprano.plugins.Parser/1.0")
00166
00167 #endif // SOPRANO_PARSER_H
00168