• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

soprano

Soprano::Util::MutexModel

Soprano::Util::MutexModel Class Reference

#include <Soprano/Util/MutexModel>

Inheritance diagram for Soprano::Util::MutexModel:

Inheritance graph
[legend]

List of all members.


Detailed Description

Protect a Model for multiple calls in multi-threaded applications.

In most cases one does not need to use this FilterModel since Models created by Soprano::createModel and Soprano::Backend::createModel are thread-safe. It may, however, come in handy for custom models.

Author:
Sebastian Trueg <trueg@kde.org>

Definition at line 44 of file mutexmodel.h.


Public Types

enum  ProtectionMode { PlainMultiThreading, ReadWriteMultiThreading, ReadWriteSingleThreading }

Public Member Functions

Error::ErrorCode addStatement (const Statement &statement)
bool containsAnyStatement (const Statement &statement) const
bool containsStatement (const Statement &statement) const
QueryResultIterator executeQuery (const QString &query, Query::QueryLanguage language, const QString &userQueryLanguage=QString()) const
bool isEmpty () const
NodeIterator listContexts () const
StatementIterator listStatements (const Statement &partial) const
 MutexModel (ProtectionMode mode, Model *parent=0)
Error::ErrorCode removeAllStatements (const Statement &statement)
Error::ErrorCode removeStatement (const Statement &statement)
int statementCount () const
 ~MutexModel ()

Member Enumeration Documentation

enum Soprano::Util::MutexModel::ProtectionMode

Enumerator:
PlainMultiThreading  In PlainMultiThreading mode only one action can be performed at the same time.

Calls block until the previous call is done.

Warning:
In this mode nesting iterators will result in a deadlock.
ReadWriteMultiThreading  In ReadWriteMultiThreading mode multiple read operations can be performed at the same time but only one write operation.

In general write operations take precedence over read operations when locking. However, the same thread can perform nested read locks an arbitrary number of times.

ReadWriteSingleThreading 
Deprecated:
This was a buggy mode which was impossible to fix. Use AsyncModel instead.

Definition at line 49 of file mutexmodel.h.


Constructor & Destructor Documentation

Soprano::Util::MutexModel::MutexModel ( ProtectionMode  mode,
Model *  parent = 0 
)

Create a new MutexModel.

Parameters:
mode The mode to use.
parent The parent Model to forward the actual calls to.

Soprano::Util::MutexModel::~MutexModel (  ) 

Destructor.


Member Function Documentation

Error::ErrorCode Soprano::Util::MutexModel::addStatement ( const Statement &  statement  )  [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

bool Soprano::Util::MutexModel::containsAnyStatement ( const Statement &  statement  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

bool Soprano::Util::MutexModel::containsStatement ( const Statement &  statement  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

QueryResultIterator Soprano::Util::MutexModel::executeQuery ( const QString &  query,
Query::QueryLanguage  language,
const QString &  userQueryLanguage = QString() 
) const [virtual]

Default implementation simply pipes the call through to the parent model.

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

bool Soprano::Util::MutexModel::isEmpty (  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

NodeIterator Soprano::Util::MutexModel::listContexts (  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

StatementIterator Soprano::Util::MutexModel::listStatements ( const Statement &  partial  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

Error::ErrorCode Soprano::Util::MutexModel::removeAllStatements ( const Statement &  statement  )  [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

Error::ErrorCode Soprano::Util::MutexModel::removeStatement ( const Statement &  statement  )  [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.

int Soprano::Util::MutexModel::statementCount (  )  const [virtual]

Default implementation simply pipes the call through to the parent model.

Reimplemented from Soprano::FilterModel.


The documentation for this class was generated from the following file:
  • mutexmodel.h

soprano

Skip menu "soprano"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • akonadi
  • Decibel
  • eigen
  • Eigen2
  • kdewin32
  • Phonon
  •     Backend
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal