Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SOPRANO_MUTEX_MODEL_H_
00023 #define _SOPRANO_MUTEX_MODEL_H_
00024
00025 #include "filtermodel.h"
00026 #include "soprano_export.h"
00027
00028 namespace Soprano {
00029 namespace Util {
00030 class MutexIteratorBase;
00031
00044 class SOPRANO_EXPORT MutexModel : public FilterModel
00045 {
00046 Q_OBJECT
00047
00048 public:
00049 enum ProtectionMode {
00056 PlainMultiThreading,
00057
00067 ReadWriteMultiThreading,
00068
00073 ReadWriteSingleThreading
00074 };
00075
00083 MutexModel( ProtectionMode mode, Model* parent = 0 );
00084
00088 ~MutexModel();
00089
00090 Error::ErrorCode addStatement( const Statement &statement );
00091 Error::ErrorCode removeStatement( const Statement &statement );
00092 Error::ErrorCode removeAllStatements( const Statement &statement );
00093 StatementIterator listStatements( const Statement &partial ) const;
00094 NodeIterator listContexts() const;
00095 QueryResultIterator executeQuery( const QString& query,
00096 Query::QueryLanguage language,
00097 const QString& userQueryLanguage = QString() ) const;
00098 bool containsStatement( const Statement &statement ) const;
00099 bool containsAnyStatement( const Statement &statement ) const;
00100 bool isEmpty() const;
00101 int statementCount() const;
00102
00103 using FilterModel::addStatement;
00104 using FilterModel::removeStatement;
00105 using FilterModel::removeAllStatements;
00106 using FilterModel::listStatements;
00107 using FilterModel::containsStatement;
00108 using FilterModel::containsAnyStatement;
00109
00110 private:
00111 void removeIterator( MutexIteratorBase* it ) const;
00112
00113 class Private;
00114 Private* const d;
00115
00116 friend class MutexIteratorBase;
00117 };
00118 }
00119 }
00120
00121 #endif