This section describes an interface for Scan. Scan is not an official part of the ZOOM model yet. The result of a scan operation is the ZOOM_scanset which is a set of terms returned by a target.

    ZOOM_scanset ZOOM_connection_scan (ZOOM_connection c,
                                       const char *startterm);

    size_t ZOOM_scanset_size(ZOOM_scanset scan);

    const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
                                   int *occ, size_t *len);

    void ZOOM_scanset_destroy (ZOOM_scanset scan);

    const char *ZOOM_scanset_option_get (ZOOM_scanset scan,
                                         const char *key);

    void ZOOM_scanset_option_set (ZOOM_scanset scan, const char *key,
                                  const char *val);

The scan set is created by function ZOOM_connection_scan which performs a scan operation on the connection and start term given. If the operation was successful, the size of the scan set can be retrieved by a call to ZOOM_scanset_size. Like result sets, the items are numbered 0,..size-1. To obtain information about a particular scan term, call function ZOOM_scanset_term. This function takes a scan set offset pos and returns a pointer to an actual term or NULL if non-present. If present, the occ and len are set to the number of occurrences and the length of the actual term respectively. A scan set may be freed by a call to function ZOOM_scanset_destroy. Functions ZOOM_scanset_option_get and ZOOM_scanset_option_set retrieves and sets an option respectively.

Table 3-3. ZOOM Scan Set Options

numberNumber of Scan Terms requested in next scan. After scan it holds the actual number of terms returned. 10
positionPreferred Position of term in response in next scan; actual position after completion of scan. 1
stepSizeStep Size 0
scanStatusAn integer indicating the Scan Status of last scan. 0