1 YAZ++ - A C++ library for YAZ
3 $Id: README.txt,v 1.11 2002-10-23 13:32:57 mike Exp $
9 YAZ++ is a C++ layer for YAZ and implements the ANSI Z39.50
10 protocol for information retrieval (client and server side).
11 The YAZ homepage is: http://www.indexdata.dk/yaz/
13 YAZ++ uses the same license as YAZ - see LICENSE file for details.
19 YAZ++ builds a programmers' library libyaz++.lib and a few
22 yaz-my-client basic client
23 yaz-my-server basic server
24 yaz-proxy not-so-basic proxy server
26 Directory structure of the YAZ++ package:
28 -- src (C++ library and proxy source)
29 -- zoom (C++ source for ZOOM)
30 -- include/yaz++ (C++ headers)
31 -- lib (compiled libraries)
32 -- win (Windows build files)
33 -- doc (DocBook-format documentation)
39 Make sure you have a C and C++ compiler available. gcc and g++ work fine.
41 Before compilation can take place YAZ must be installed. It goes, roughly,
62 YAZ++ for WIN32 should run on Windows 95/98/2K and Windows NT 4.0.
63 Yaz++ was built using Microsoft Visual C++ 6.0. Other compilers
64 should work but makefile/project files will have to be created for
67 Workspace yazxx.dsw includes the projects
68 yazxx.dsp - builds yazxx.dll
69 yazclient.dsp - builds yazmyclient.exe
70 yazserver.dsp - builds yazmyserver.exe
71 yazproxy.dsp - builds yazproxy.exe
77 For the proxy the actual target is determined in by the OtherInfo
78 part of the InitRequest. We've defined an OID for this which we call
79 PROXY. The OID is 1.2.840.10003.10.1000.81.1.
81 OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{
82 category [1] IMPLICIT InfoCategory OPTIONAL,
84 characterInfo [2] IMPLICIT InternationalString,
85 binaryInfo [3] IMPLICIT OCTET STRING,
86 externallyDefinedInfo [4] IMPLICIT EXTERNAL,
87 oid [5] IMPLICIT OBJECT IDENTIFIER}}
89 InfoCategory ::= SEQUENCE{
90 categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
91 categoryValue [2] IMPLICIT INTEGER}
93 The InfoCategory is present with categoryTypeId set to the PROXY OID
94 and categoryValue set to 0. The information in OtherInformation uses
95 characterInfo to represent the target using the form target[:port][/db].
97 For clients that don't set the PROXY OtherInformation, a default
98 target can be specified using option -t for proxy.
101 We start the proxy so that it listens on port 9000. The default
102 target is Bell Labs Library unless it is overridden by a client in
105 $ ./yaz-proxy -t z3950.bell-labs.com/books @:9000
107 The client is started and talks to the proxy without specifying
108 a target. Hence this client will talk to the Bell Labs server.
110 $ ./yaz-client localhost:9000
112 The client is started and it specifies the actual target itself.
114 $ ./yaz-client -p localhost:9000 bagel.indexdata.dk/gils
116 For ZAP the equivalent would be
118 target=bagel.indexdata.dk/gils
125 The ZOOM library in this distribution implements the ZOOM C++ binding
126 described on the ZOOM web-site at
127 http://zoom.z3950.org/bind/cplusplus/index.html
128 It provides a simple but powerful API for constructing Z39.50 client
129 applications. See the documentation in doc/zoom.xml for much more