XTL-1.3.pl11 This directory contains the subset of XTL required by LyX. The full distribution includes extensive tests and documentation. If you encounter compiler errors in xtl code when compiling LyX please get a copy of the full distribution and run the regression tests on your system. Report any problems found to the xtl mailing list. See: http://gsd.di.uminho.pt/jop/xtl/ -------------------------===========================---------------------- The eXternalization Template Library (XTL) ------------------------------------------ The XTL is a library of template classes and functions for reading/writing structured data to/from an external (platform independent) representation. This process is also usually known as marshalling, serialization or pickling, and is useful both for heterogeneous network programming and portable persistent storage. Currently, the XTL supports XDR (RFC1014), GIOP CDR (CORBA) and readable ascii text (write-only) as data formats. Memory buffers are usable as data sources/targets. C file streams, C++ iostreams and POSIX iovecs are also planned. Besides the usual C data types (basic, structs, pointers, unions), the XTL also supports C++ constructs, such as pointers to base classes and template types, namely, STL containers. The XTL does not include any kind of IDL, and as such, the programmer is required to write a "filter" for each data type. The API is somewhat modeled on the original XDR library by Sun, in that the same filter is used for both reading and writing. However, heavy usage of templates makes the API simpler and type safe. Function inlining and careful avoidance of pointers or virtual functions, also make generated code faster. This is a sample benchmark: PPRO 200 Mhz + output -> membuffer + size ~= 280 bytes -O16 not opt memcpy 2.8 us 2.2 us *XTL* XDR 9.3 us 47.7 us *XTL* "little" XDR 7.8 us 45.8 us *XTL* GIOP 8.5 us 58.3 us Sun XDR 25.0 us 28.5 us For more information and to download a distribution, visit http://gil.di.uminho.pt/~jop/xtl/ . Files under /include and /doc are distributed acording to the GNU LGPL. See COPYING.LIB for licensing details. Everything else is public domain. Contributors ------------ - José Orlando Pereira jop@di.uminho.pt, http://gsd.di.uminho.pt/~jop Departamento de Informatica, Universidade do Minho Campus de Gualtar, 4710-057 Braga, Portugal - Asger Alstrup Nielsen alstrup@sophusmedical.dk - Allan Rae allan.rae@mailbox.uq.edu.au - Angus Leeming a.leeming@ic.ac.uk Department of Biological & Medical Systems, Imperial College, London, UK