ZOOM offers an interface to a subset of the Z39.50 extended services as well as a few privately defined ones:
Z39.50 Item Order (ILL). See the Section called Item Order.
Record Update. This allows a client to insert, modify or delete records. See the Section called Record Update.
Database Create. This a non-standard feature. Allows a client to create a database. See the Section called Database Create.
Database Drop. This a non-standard feature. Allows a client to delete/drop a database. See the Section called Database Drop.
Commit operation. This a non-standard feature. Allows a client to commit operations. See the Section called Commit Operation.
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 |
targetReference | Target Reference. This is part of the response as returned by the server. Read it after a succesful operation. | none |
For Item Order, type must be set to itemorder in
ZOOM_package_send
.
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 |
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 |
For Database Create, type must be set to create in
ZOOM_package_send
.
For Database Drop, type must be set to drop in
ZOOM_package_send
.
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.