X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=README.txt;h=1c5c937400d94729b95471d4397afb8779731625;hb=7b05ec98b5a3227967c82f601a1c06ffd5c6dee6;hp=27fd545cb091bc35244e75381ac4f961392d0e79;hpb=19db153df3124f15689496768049bb73c3011a69;p=yazpp-moved-to-github.git diff --git a/README.txt b/README.txt index 27fd545..1c5c937 100644 --- a/README.txt +++ b/README.txt @@ -1,32 +1,47 @@ YAZ++ - A C++ library for YAZ -$Id: README.txt,v 1.10 2001-11-06 17:08:05 adam Exp $ +$Id: README.txt,v 1.13 2003-10-16 13:40:41 adam Exp $ -o Introduction + +Introduction +------------ YAZ++ is a C++ layer for YAZ and implements the ANSI Z39.50 -protocol for information retrieval (client - and server side). -YAZ homepage is: http://www.indexdata.dk/yaz/ +protocol for information retrieval (client and server side). +The YAZ++ homepage is: http://www.indexdata.dk/yaz++/ YAZ++ uses the same license as YAZ - see LICENSE file for details. -o Overview +Documentation +------------- + +Directory sub contains documentation in HTML and PDF. You can +also read it online at http://www.indexdata.dk/yaz++/ + +Overview +-------- YAZ++ builds a programmers' library libyaz++.lib and a few example applications: + yaz-my-client basic client yaz-my-server basic server yaz-proxy not-so-basic proxy server Directory structure of the YAZ++ package: - -- src (C++ source) + -- src (C++ library and proxy source) + -- zoom (C++ source for ZOOM) -- include/yaz++ (C++ headers) + -- lib (compiled libraries) -- win (Windows build files) + -- doc (DocBook-format documentation) -o Installation, Unix -Make sure you have a C - and C++ compiler available. gcc and g++ works fine. +Installation, Unix +------------------ + +Make sure you have a C and C++ compiler available. gcc and g++ work fine. Before compilation can take place YAZ must be installed. It goes, roughly, like this: @@ -34,15 +49,30 @@ like this: $ cd yaz- $ ./configure $ make + $ su + # make install + $ ^D $ cd .. +The YAZ proxy uses a configuration file in XML and libxml2 is required +in order for the config facility to work. Many systems already have +libxml2 installed. In that, case remember to get the devel version +of that as well (not just the runtime). Libxml2 can also be compiled +easily on most systems. See http://www.xmlsoft.org/ for more +information. + Then, build YAZ++: $ cd yaz++- $ ./configure $ make -o Installation, Windows +If you do have libxml2 installed and configure above does not find it, +use option --with-xml2=PREFIX to specify its location. yaz++ configure +looks for PREFIX/bin/xml2-config. + +Installation, Windows +--------------------- YAZ++ for WIN32 should run on Windows 95/98/2K and Windows NT 4.0. Yaz++ was built using Microsoft Visual C++ 6.0. Other compilers @@ -55,46 +85,61 @@ those compilers. yazserver.dsp - builds yazmyserver.exe yazproxy.dsp - builds yazproxy.exe -o About the proxy.. + +About the proxy +--------------- For the proxy the actual target is determined in by the OtherInfo part of the InitRequest. We've defined an OID for this which we call -PROXY. OID is 1.2.840.10003.10.1000.81.1. +PROXY. The OID is 1.2.840.10003.10.1000.81.1. OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{ - category [1] IMPLICIT InfoCategory OPTIONAL, + category [1] IMPLICIT InfoCategory OPTIONAL, information CHOICE{ - characterInfo [2] IMPLICIT InternationalString, - binaryInfo [3] IMPLICIT OCTET STRING, + characterInfo [2] IMPLICIT InternationalString, + binaryInfo [3] IMPLICIT OCTET STRING, externallyDefinedInfo [4] IMPLICIT EXTERNAL, - oid [5] IMPLICIT OBJECT IDENTIFIER}} + oid [5] IMPLICIT OBJECT IDENTIFIER}} -- InfoCategory ::= SEQUENCE{ - categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - categoryValue [2] IMPLICIT INTEGER} + categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + categoryValue [2] IMPLICIT INTEGER} The InfoCategory is present with categoryTypeId set to the PROXY OID and categoryValue set to 0. The information in OtherInformation uses characterInfo to represent the target using the form target[:port][/db]. -For the client that doesn't set the PROXY OtherInformation, a default +For clients that don't set the PROXY OtherInformation, a default target can be specified using option -t for proxy. Example: We start the proxy so that it listens on port 9000. The default - target is Bell Labs Library unless it is specified by a client in + target is Bell Labs Library unless it is overridden by a client in the InitRequest. $ ./yaz-proxy -t z3950.bell-labs.com/books @:9000 The client is started and talks to the proxy without specifying a target. Hence this client will talk to the Bell Labs server. + $ ./yaz-client localhost:9000 The client is started and it specifies the actual target itself. + $ ./yaz-client -p localhost:9000 bagel.indexdata.dk/gils For ZAP the equivalent would be proxy=localhost:9000 target=bagel.indexdata.dk/gils Simple, huh! + + +ZOOM-C++ +-------- + +The ZOOM library in this distribution implements the ZOOM C++ binding +described on the ZOOM web-site at + http://zoom.z3950.org/bind/cplusplus/index.html +It provides a simple but powerful API for constructing Z39.50 client +applications. See the documentation in doc/zoom.xml for much more +information.