# kio Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# KDCOPServiceStarter Class Reference

A generic DCOP service starter, using KTrader. More...

`#include <kdcopservicestarter.h>`

Collaboration diagram for KDCOPServiceStarter:

[legend]
List of all members.

## Public Member Functions

int | findServiceFor (const QString &serviceType, const QString &constraint=QString::null, const QString &preferences=QString::null, QString *error=0, QCString *dcopService=0, int flags=0)
virtual int | startServiceFor (const QString &serviceType, const QString &constraint=QString::null, const QString &preferences=QString::null, QString *error=0, QCString *dcopService=0, int flags=0)

## Static Public Member Functions

static KDCOPServiceStarter * | self ()

## Friends

class | KStaticDeleter<KDCOPServiceStarter>

## Detailed Description

A generic DCOP service starter, using KTrader.

The default implementation starts new processes, but this interface can also be reimplemented by specific applications to provide dlopened in-process DCOP objects.

Author:
  David Faure <faure@kde.org>

Definition at line 34 of file kdcopservicestarter.h.

## Member Function Documentation

int KDCOPServiceStarter::findServiceFor | ( | const QString & | serviceType,
|  | const QString & | constraint = `QString::null`,
|  | const QString & | preferences = `QString::null`,
|  | QString * | error = `0`,
|  | QCString * | dcopService = `0`,
|  | int | flags = `0`
| ) |

Check if a given DCOP interface is available - from the serviceType it's supposed to implement.

The trader is queried to find the preferred application for this serviceType, with the constraint that its X-DCOP-ServiceName property must be defined. Then the DCOP server is checked. If the service is not available, this method will call startServiceFor to start it.

Parameters:

  | serviceType | the type of service we're looking for
  | constraint | see KTrader
  | preferences | see KTrader
  | error | On failure, `error` contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | dcopService | On success, `dcopService` contains the DCOP name under which this service is available. If the pointer is 0 the argument will be ignored
  | flags | for future extensions (currently unused)

Returns:
  an error code indicating success (== 0) or failure (> 0).

Definition at line 49 of file kdcopservicestarter.cpp.

References endl(), QValueList::first(), QValueList::isEmpty(), QString::isEmpty(), kdDebug(), kdWarning(), KTrader::query(), KTrader::self(), and startServiceFor().

int KDCOPServiceStarter::startServiceFor | ( | const QString & | serviceType,
|  | const QString & | constraint = `QString::null`,
|  | const QString & | preferences = `QString::null`,
|  | QString * | error = `0`,
|  | QCString * | dcopService = `0`,
|  | int | flags = `0`
| ) | `[virtual]`

Find an implementation of the given `serviceType`, and start it, to use its DCOP interface.

The default implementation uses KTrader to find the preferred Application, and then starts it using kapp->startService...

However applications (like kontact) can reimplement this method, to provide an in-process way of loading the implementation for this service type.

Parameters:

  | serviceType | the type of service we're looking for
  | constraint | see KTrader
  | preferences | see KTrader
  | error | On failure, `error` contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | dcopService | On success, `dcopService` contains the DCOP name under which this service is available. If the pointer is 0 the argument will be ignored
  | flags | for future extensions (currently unused)

Returns:
  an error code indicating success (== 0) or failure (> 0).

Definition at line 86 of file kdcopservicestarter.cpp.

References endl(), QValueList::first(), QValueList::isEmpty(), kdDebug(), KTrader::query(), and KTrader::self().

Referenced by findServiceFor().

The documentation for this class was generated from the following files:

- kdcopservicestarter.h
- kdcopservicestarter.cpp

This file is part of the documentation for kio Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:24:23 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003