Would, like the spring that turneth wood to stone,
Convert his guilts to graces
Shakespeare, Hamlet 4.7

  

XConversion

alpha version, October 2000

The XConversion framework is a multi-function system, whose goal is to support format conversions in the Epoc operating environment. It is designed to be flexible enough to support current formats (like HTML, XLS) as well as any future ones. It is extensible by way of DLLs (dynamically loadable libraries), containing the appropriate filters, so that the number of supported conversions is virtually unlimited.

The main purpose of the XConversion system is to allow to read in and decode foreign attachments in the e-mail messages, or in the World Wide Web pages. Though, the framework design supports quite more services, as described below.

The Overall Structure

The full XConversion suite contains a number of relatively independent parts:

XConversion0

Although the main goal of the XConversion system is to allow for easy and seamless translation of file formats, mainly for the purpose of encoding/decoding e-mail attachments, it is flexible enough for a general services: any document-based application, which exploit the XConversion system, can import or export the Epoc Word or RTF files; any database application can import or export Epoc Data or PC DBF files, any spreadsheet can import or export Epoc Sheet or XLS files, and so forth.

In the following paragraphs, we will describe the individual parts a bit more thoroughly.

Filters

All the filter DLLs (dynamically loadable libraries) are placed in the "/System/XConversion/Filters" folders, on any disk. The framework would search all disks, and any DLL found there will be loaded in. Thence, installing a new filter is as easy as placing the appropriate DLL to the mentioned folder; it can be done manually, or using the standard Epoc "SIS" installer.

The framework contains a stable and comprehensive support for distinguishing filter types. There is a support for auxiliary files as well: the filter can contain code tables, Epoc resource files or, say, other DLLs with seldom-needed functionality, dynamically loaded only when necessary.

We certainly hope the XConversion framework will become a widely-accepted standard for the Epoc operating environment: it is easy for an application developer to prepare filters from and to the application proprietary data format. Done so, the format will become automatically and immediately convertable on any device with the XConversion framework installed.

XConversion1

The XConverter Application

The standard XConverter application can be viewed as an user interface to the whole XConversion system: it searches for all the available filters, and allows the user to apply them on any appropriate file (or different data containers: the filters can be applied, say, to the contents of the clipboard). From the user's viewpoint the XConverter is "just another filter application", with rich features and an easily extensible set of the concrete filters.

The XConversion MDL Recognizer

The MDL recognizers are Epoc modules, which distinguish different file types, and decide which application should be used to open the particular type of file. The XConversion MDL recognizer just reads in all the available filters, and ensures any filterable file type is recognized in the Epoc System screen, and can be automatically converted (ie. opened in the XConverter application).

The Development Kit

Probably the main difference between the XConversion suite and other converter utilities is that the XConversion features an open architecture for the filter construction and usage.

There is quite extensive number of standard classes, which allow for easy filter development: the XConversion framework takes care of all the "legwork" of locating the data source and target, opening the appropriate files or streams, providing the standard graphical user interface (including any dialogue for filter-specific attributes, like the selection of delimiters), and so on. The developer just adds the conversion functionality.

The framework services are quite comprehensive: for example, for text strings there is a support for different string encodings, which even in the current early XConversion version properly understands the Unicode,  ISO Latin-2, Windows Latin-2 (Code Page 1250), ISO Latin-1, Windows Latin-1, Windows Greek (Code Page 1253), Windows Turkish (Code Page 1254), Mac OS Roman, DOS Latin-2 (Code Page 852), DOS Kamenicti, and Mac OS Central European encodings, with a full support of other user-installable encodings, including Far East ones (like Shift-JIS or UTF8).

Beside the main service of the easy filter development the Development Kit contains a small stand-alone framework, which allows an application developer to exploit the filters directly for the import/export services of the newly prepared application. Let's say you are making a new spreadsheet; using this service, the new application will be able to import and export all the spreadsheet formats for which there are installed filters (like the Epoc Sheet, XLS, or WK1). The effort needed will not exceed the amount of work needed for implementation of, say, the single-purpose WK1 import/export; the functionality will be uncomparable.

The Current Stage

Like the rest of the XSdk, the XConversion framework is currently in an alpha stage: not all the functionality is finished yet, but the support available is strong enough to be used with strong advantages. Particularly:

Copyright © 1999-2000 X.soft, all rights reserved