# Kab2 Design

## Rik Hemsley <rik@kde.org>

### Draft #2

### August 24 1999

#### Introduction

The addressbook provided with KDE 1 was useful and provided enough features to please most users. The design of KAB 1 was, however, too simple to provide for features such as multiple addressbooks, remote addressbooks and filter plugins (for importing from other formats).

The design of KAB 2 is intended to make use of the advanced mechanisms provided by KDE 2. In the future it is hoped that access to kab2 may be provided via CORBA communication. This would give excellent network transparency while preserving a useful API.

#### Description

KAB 2 will be a distributed system. A simple shared library will provide the API for applications. This library will know about the addressbooks that the user wishes to access. The library will contact the addressbooks upon startup and query them to discover whether they are usable at that time. Any usable addressbooks will appear in the user interface, and be accessible through the API.

Addressbooks will be communicated with via DCOP. A standard protocol will be used that provides a consistent interface and allows for accessing entities within each addressbook. This interface will not be visible to the user nor the application programmer as it will be hidden behind the API.

At any point in time, on user request, an addressbook object may attempt to import records from an unknown format. To accomplish this, it will attempt to load a 'filter' plugin. If the plugin is available for the format, and the data to be imported is available, the plugin will be asked to import all records from its data source. The plugin will then attempt to create records within the addressbook by reading its data source and constructing new records as best as it can.

#### References

The API documentation (in kdoc format) for libkab2 is available in kdoc or doxygen format.

A draft IDL for kab2 is available here (A pretty HTML version is here).

#### Diagrammatic representation of the structure of KAB 2

#### Contacts

Responsibility | Name | Email address
KAB 2 designer and coder | Rik Hemsley | rik@kde.org
KAB 2 UI designer and coder | Don Sanders | dsanders@cch.com.au
KAB 1 designer and coder | Mirko Sucker | mirko@kde.org