ZOOM offers an interface to a subset of the Z39.50 extended services
as well as a few privately defined ones:
To create an extended service operation a ZOOM_package
must be created. The operation is a five step operation. The
package is created, package is configured by means of options,
the package is send, result is inspected (by means of options),
the package is destroyed.
ZOOM_package ZOOM_connection_package(ZOOM_connection c,
ZOOM_options options);
const char *ZOOM_package_option_get(ZOOM_package p,
const char *key);
void ZOOM_package_option_set(ZOOM_package p, const char *key,
const char *val);
void ZOOM_package_send(ZOOM_package p, const char *type);
void ZOOM_package_destroy(ZOOM_package p);
The ZOOM_connection_package creates a
package for the connection given using the options specified.
Functions ZOOM_package_option_get and
ZOOM_package_option_set gets and sets
options.
ZOOM_package_send sends
the package the via connection specified in
ZOOM_connection_package.
The
type
specifies the actual extended service
package type to be sent.
Table 3.5. Extended Service Common Options
| Option |
Description |
Default |
| package-name |
Extended Service Request package name. Must be specified
as part of a request |
none |
| user-id |
User ID of Extended Service Package. Is a request option |
none |
| function |
Function of package - one of create,
delete, modify. Is
a request option.
|
create
|
| waitAction |
Wait action for package. Possible values:
wait, waitIfPossible,
dontWait or dontReturnPackage.
|
waitIfPossible
|
| targetReference |
Target Reference. This is part of the response as returned
by the server. Read it after a successful operation.
|
none
|
For Item Order, type must be set to itemorder in
ZOOM_package_send.
Table 3.6. Item Order Options
| Option |
Description |
Default |
| contact-name |
ILL contact name |
none |
| contact-phone |
ILL contact phone |
none |
| contact-email |
ILL contact email |
none |
| itemorder-item |
Position for item (record) requested. An integer |
1 |
For Record Update, type must be set to update in
ZOOM_package_send.
Table 3.7. Record Update Options
| Option |
Description |
Default |
| action |
The update action. One of
specialUpdate,
recordInsert,
recordReplace,
recordDelete,
elementUpdate.
|
specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate)
|
| recordIdOpaque |
Opaque Record ID |
none |
| recordIdNumber |
Record ID number |
none |
| record |
The record itself |
none |
| syntax |
The record syntax (transfer syntax). Is a string that
is a known record syntax.
|
no syntax |
| databaseName |
Database from connection object |
Default |
| correlationInfo.note |
Correlation Info Note (string) |
none |
| correlationInfo.id |
Correlation Info ID (integer) |
none |
| elementSetName |
Element Set for Record |
none |
| updateVersion |
Record Update version which holds one of the values
1, 2 or 3. Each version has a distinct OID:
1.2.840.10003.9.5
(first version) ,
1.2.840.10003.9.5.1
(second version) and
1.2.840.10003.9.5.1.1
(third and
newest version).
|
3 |
For Database Create, type must be set to create in
ZOOM_package_send.
Table 3.8. Database Create Options
| Option |
Description |
Default |
| databaseName |
Database from connection object |
Default |
For Database Drop, type must be set to drop in
ZOOM_package_send.
Table 3.9. Database Drop Options
| Option |
Description |
Default |
| databaseName |
Database from connection object |
Default |
For Commit, type must be set to commit in
ZOOM_package_send.
All the extended services are Z39.50-only.
Note
The database create, drop and commit services are privately defined
operations.
Refer to esadmin.asn in YAZ for the ASN.1
definitions.