6. Extended Services

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

OptionDescriptionDefault
package-nameExtended Service Request package name. Must be specified as part of a requestnone
user-idUser ID of Extended Service Package. Is a request optionnone
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

6.1. Item Order

For Item Order, type must be set to itemorder in ZOOM_package_send.

Table 3.6. Item Order Options

OptionDescriptionDefault
contact-nameILL contact namenone
contact-phoneILL contact phonenone
contact-emailILL contact emailnone
itemorder-itemPosition for item (record) requested. An integer1

6.2. Record Update

For Record Update, type must be set to update in ZOOM_package_send.

Table 3.7. Record Update Options

OptionDescriptionDefault
action The update action. One of specialUpdate, recordInsert, recordReplace, recordDelete, elementUpdate. specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate)
recordIdOpaqueOpaque Record IDnone
recordIdNumberRecord ID numbernone
recordThe record itselfnone
syntaxThe record syntax (transfer syntax). Is a string that is a known record syntax. no syntax
databaseNameDatabase from connection objectDefault
correlationInfo.noteCorrelation Info Note (string)none
correlationInfo.idCorrelation Info ID (integer)none
elementSetNameElement Set for Recordnone
updateVersionRecord 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

6.3. Database Create

For Database Create, type must be set to create in ZOOM_package_send.

Table 3.8. Database Create Options

OptionDescriptionDefault
databaseNameDatabase from connection objectDefault

6.4. Database Drop

For Database Drop, type must be set to drop in ZOOM_package_send.

Table 3.9. Database Drop Options

OptionDescriptionDefault
databaseNameDatabase from connection objectDefault

6.5. Commit Operation

For Commit, type must be set to commit in ZOOM_package_send.

6.6. Protocol behavior

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.