X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fodr.xml;h=820fa2616e5ee886104f219e8a0ce376d8c94922;hb=9287c96097c00d28310becb14ea3dd7cfb9f2ab0;hp=2623c1f452641a044e1595c6fb3c6883670c7788;hpb=3b3deb4d093d747360a5eb0e02c6b4e9c8a89b84;p=yaz-moved-to-github.git diff --git a/doc/odr.xml b/doc/odr.xml index 2623c1f..820fa26 100644 --- a/doc/odr.xml +++ b/doc/odr.xml @@ -1,7 +1,7 @@ - - The ODR Module + + The ODR Module - Introduction + Introduction &odr; is the BER-encoding/decoding subsystem of &yaz;. Care as been taken @@ -23,9 +23,9 @@ - This is important, so we'll repeat it for emphasis: You do not - need to read section Programming with ODR to - implement Z39.50 with &yaz;. + This is important, so we'll repeat it for emphasis: You do + not need to read section Programming with + ODR to implement Z39.50 with &yaz;. @@ -37,7 +37,7 @@ - Using ODR + Using ODR ODR Streams @@ -132,7 +132,7 @@ The memory subsystem of &odr; is fairly efficient at allocating and releasing little bits of memory. Rather than managing the individual, - small bits of space, the system maintains a freelist of larger chunks + small bits of space, the system maintains a free-list of larger chunks of memory, which are handed out in small bits. This scheme is generally known as a nibble memory system. It is very useful for maintaining short-lived constructions such @@ -480,7 +480,7 @@ void do_nothing_useful(int value) - Programming with ODR + Programming with ODR The API of &odr; is designed to reflect the structure of ASN.1, rather @@ -489,21 +489,18 @@ void do_nothing_useful(int value) - The interface is based loosely on that of the Sun Microsystems XDR routines. + The interface is based loosely on that of the Sun Microsystems XDR + routines. Specifically, each function which corresponds to an ASN.1 primitive type has a dual function. Depending on the settings of the ODR stream which is supplied as a parameter, the function may be used either to encode or decode data. The functions that can be built - using these primitive functions, to represent more complex data types, share - this quality. The result is that you only have to enter the definition - for a type once - and you have the functionality of encoding, decoding - (and pretty-printing) all in one unit. The resulting C source code is - quite compact, and is a pretty straightforward representation of the - source ASN.1 specification. Although no ASN.1 compiler is supplied - with &odr; at this time, it shouldn't be too difficult to write one, or - perhaps even to adapt an existing compiler to output &odr; routines - (not surprisingly, writing encoders/decoders using &odr; turns out - to be boring work). + using these primitive functions, to represent more complex data types, + share this quality. The result is that you only have to enter the + definition for a type once - and you have the functionality of encoding, + decoding (and pretty-printing) all in one unit. + The resulting C source code is quite compact, and is a pretty + straightforward representation of the source ASN.1 specification. @@ -682,7 +679,7 @@ int ODR_MASK_GET(Odr_bitmask *b, int bitno); - The functions are modelled after the manipulation functions that + The functions are modeled after the manipulation functions that accompany the fd_set type used by the select(2) call. ODR_MASK_ZERO should always be called first on a @@ -1219,7 +1216,7 @@ void odr_choice_bias(ODR o, int what); - Debugging + Debugging The protocol modules are suffering somewhat from a lack of diagnostic @@ -1244,7 +1241,7 @@ void odr_choice_bias(ODR o, int what); sgml-indent-step:1 sgml-indent-data:t sgml-parent-document: "yaz.xml" - sgml-local-catalogs: "../../docbook/docbook.cat" + sgml-local-catalogs: nil sgml-namecase-general:t End: -->