lyx_mirror/src/xtl
Lars Gullik Bjønnes 0f4053721e rotate the changelog and a bunch of new changelogs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1324 a592a061-630c-0410-9148-cb99ea01b6c8
2001-01-12 09:42:30 +00:00
..
.cvsignore more FILMagain stuff 2000-06-12 11:55:12 +00:00
autobuf.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
autoio.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
ChangeLog rotate the changelog and a bunch of new changelogs. 2001-01-12 09:42:30 +00:00
config.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
COPYING.LIB more FILMagain stuff 2000-06-12 11:55:12 +00:00
giop.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
graphio.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
macros.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
Makefile.am more FILMagain stuff 2000-06-12 11:55:12 +00:00
objio.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
README more FILMagain stuff 2000-06-12 11:55:12 +00:00
text.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
vobjio.h more FILMagain stuff 2000-06-12 11:55:12 +00:00
xdr.h more FILMagain stuff 2000-06-12 11:55:12 +00:00

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<6F> 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