# class DBusExportIterator

###

Module | soprano
Namespace | Soprano::Server
Class | DBusExportIterator
Inherits | QObject,Soprano::Error::ErrorCache

\class DBusExportIterator dbusexportiterator.h Soprano/Server/DBusExportIterator

Exports a %Soprano Iterator via D-Bus.

The DBusExportIterator can be used to export a single iterator via D-Bus. This may be useful in case one does not want to expose the complete Model API but restrict access via custom methods that return %Soprano Iterators.

The most common usage is probably as a fire-and-forget class:

    void myDbusMethod( const QDBusMessage& m ) {
    Soprano.StatementIterator it = model->listStatements();
    Soprano.Server.DBusExportIterator* dbusIt = new Soprano.Server.DBusExportIterator( it, this );
    dbusIt->setDeleteOnClose( true );
    dbusIt->registerIterator( myFancyDBusObjectPath, m.service() );
    return myFancyDBusObjectPath;
    }

This is a class for advanced usage. In most situations using DBusExportModel or even ServerCore.registerAsDBusObject is probably enough.

Author Sebastian Trueg <trueg@kde.org>

See also soprano_server_dbus

\since 2.1

### methods

- DBusExportIterator (it, parent)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  it | Soprano.StatementIterator |
  parent | QObject | 0

  Create a new instance to export a StatementIterator

- DBusExportIterator (it, parent)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  it | Soprano.NodeIterator |
  parent | QObject | 0

  Create a new instance to export a NodeIterator

- DBusExportIterator (it, parent)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  it | Soprano.QueryResultIterator |
  parent | QObject | 0

  Create a new instance to export a QueryResultIterator

- dbusObjectPath ( )

  returns QString

  The path this iterator is exported on. This is an empty string if the iterator is not exported.

- deleteOnClose ( )

  returns bool

  The DBusExportIterator instance can delete itself once the iterator is closed. The default value is false, i.e. the creator has to delete the instance.

  See also setDeleteOnClose, Iterator.close

- nodeIterator ( )

  returns Soprano.NodeIterator

  Returns The used NodeIterator or an invalid one if this DBusExportIterator does not export a NodeIterator.

- queryResultIterator ( )

  returns Soprano.QueryResultIterator

  Returns The used QueryResultIterator or an invalid one if this DBusExportIterator does not export a QueryResultIterator.

- registerIterator (dbusObjectPath, dbusClient)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  dbusObjectPath | QString |
  dbusClient | QString | QString()

  Register the iterator under the given D-Bus object path.

  See also QDBusConnection.registerObject

  dbusObjectPath - The D-Bus object path to register the iterator under.

  dbusClient - The optional D-Bus client which uses the iterator, i.e. which called the method that triggered the creation of the iterator. If set, the iterator will be closed once the client dies. In combination with setDeleteOnClose this class can thus be used in a fire-and-forget manner.

- setDeleteOnClose (deleteOnClose)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  deleteOnClose | bool |

  Set if the iterator should delete itself once it has been closed. The default value is false, i.e. the creator has to delete the instance.

  This only works if the iterator is closed from the outside, i.e. by the D-Bus client.

  See also deleteOnClose

- statementIterator ( )

  returns Soprano.StatementIterator

  Returns The used StatementIterator or an invalid one if this DBusExportIterator does not export a StatementIterator.

- unregisterIterator ( )

  returns Nothing

  Unregister the iterator from D-Bus.

  See also QDBusConnection.unregisterObject