IM Server Developers Kit Release Notes Hidetoshi Tajima X11R6 Xi18n Implementation Group May 15, 1994 Here is an introduction of IMserver Developers Kit, in short IMdkit, which is distributed with X11R6 contributions. 1. Scope of IMdkit IMdkit has the following six primary features. 1.1. Providing C language Interface IMdkit provides a low level interface to IMProtocol. It binds each IMProtocol operation to the interface for C language, so that you will take less efforts to make your IMservers communicable with XIM clients rather than handling IMProtocol directly. An XIM client is defined as an application program which is internationalized by using XIM API defined in X11R6. 1.2. Encapsulating actual IMProtocol operations IMdkit is designed to encapsulate the details of IMProtocol model. Using this kit, you don't have to deal with the actual byte-stream packets for yourselves, instead, you can use a set of data structures, each of which is corresponding to each actual IMProtocols, and you can deal with them in the same way as you deal with XEvent data structures. 1.3. Encapsulating Transport mechanism difference IMdkit is designed to encapsulate the transport mechanism, such as X Protocol, TCP/IP, Decnet, which are used in transmission of IMProtocol packets between Input Method library(IMlibrary, a part of Xlib) and IMserver. 1.4. Encapsulating Byte Order difference IMdkit is designed to encapsulate the difference in Byte Order between IMserver and clients, so IMservers using IMdkit can serve both little endian clients and Big endian clients at the same time, without taking care of the difference for themselves. 1.5. Encapsulating multiple IMProtocol models IMdkit is designed to be, to some extent, independent of IMProtocol model. At the current release, it deals with two different IMProtocol models, Ximp model, one of R5 sample IMProtocol models, and the R6 standard IMProtocol model. 1.6. Modeled after XIM APIs IMdkit is to IMserver Developers what XIM is to I18N application Developers, so IMdkit is modeled after XIM APIs. For example: XIM has XOpenIM and XCloseIM, and IMdkit has IMOpenIM and IMCloseIM. XIM has a concept of IMValues and provides XSetIMValues and XGetIMValues to set and get them, and IMdkit also uses IMValues and provides IMSetIMValues and IMGetIMValues to set and get them. 2. Building There is one special build instruction. Please use xmkmf with -a option, and with the top directory(path to xc) and the path to the current directory from the top directory in order to make a Makefile, include all the necessary files and check dependency. Type: xmkmf -a path_to_top(xc)_directory \ path_from_top(xc)_to_current_directory This is because IMdkit refers to some files in xc/lib/xtrans directory to support X TransportServer mechinism. 3. Documents For any detailed information, please refer to the documentation in the doc/ subdirectory. 4. Testing The IMdkit has been built and tested with the current X11R6 release (patchlevel 1) on the following systems: FUJITSU DS 7742 UXP/DS V10L20 IBM RS/6000 320H AIX 3.2.5 Sony NWS-5000 NEWS-OS 6.0.2 SPARCstation SunOS 4.1 SPARCstation Solaris 2.3 HP9000 S700 HP-UX9.01 5. Bug Reports If you find a reproducible bug in this software or the documentation, please send a bug report to the following destination address: tajima@kobe.hp.com 6. Acknowledgements I would like to thank all the members in xi18n sample implementation group for giving useful comments and suggestions and partcipating in tests of IMdkit: Takashi Fujiwara, Hideki Hiura, Yoshio Horiuchi, Makoto Inada, Hiromu Inukai, Hiroyuki Miyamoto, Makoto Wakamatsu, Masaki Wakao, Nobuyuki Tanaka, Shigeru Yamada and Katsuhisa Yano. And I would like to make special thanks to Hiromu Inukai, who is the principal author of the Ximp facilities, and special thanks to Makoto Inada and Hiroyuki Miyamoto for providing the Frame Manager Interfaces.