#!/usr/bin/perl -w

# $Id: update.pl,v 1.1 2006/06/05 16:33:42 mike Exp $

use strict;
use warnings;
use ZOOM;

my $options = new ZOOM::Options();
$options->option(user => "admin");
$options->option(password => "fish");
my $conn = create ZOOM::Connection($options);
$conn->connect("test.indexdata.com:2118");
print "connected\n";

my $dbname = "mike$$";
$conn->option(databaseName => $dbname);

send_package($conn, "create", databaseName => $dbname);
print "$0: created database '$dbname'\n";

my $rs = $conn->search_pqf("mineral");
my $n = $rs->size($rs);
print "$0: found $n records\n";

send_package($conn, "update", action => "specialUpdate",
	     recordIdOpaque => 1, record => join("", <DATA>));
print "$0: added record\n";

$rs = $conn->search_pqf("mineral");
$n = $rs->size($rs);
print "$0: found $n records\n";

send_package($conn, "drop", databaseName => $dbname);
print "$0: deleted database\n";

eval {
    $rs = $conn->search_pqf("mineral");
}; if (!$@) {
    print "$0: uh-oh\n";
} elsif ($@->isa("ZOOM::Exception")) {
    print "$0: database no longer there\n";
} else {
    die "@='$@'";
}


sub send_package {
    my($conn, $op, %options) = @_;

    my $p = $conn->package();
    foreach my $key (keys %options) {
	$p->option($key, $options{$key});
    }
    $p->send($op);
    $p->destroy();
}


__DATA__
<gils>
  <Title>
    UTAH EARTHQUAKE EPICENTERS
    <Acronym>UUCCSEIS</Acronym>
  </Title>
  <Originator>UTAH GEOLOGICAL AND MINERAL SURVEY</Originator>
  <Local-Subject-Index>
    APPALACHIAN VALLEY; EARTHQUAKE; EPICENTER; SEISMOLOGY; UTAH
  </Local-Subject-Index>
  <Abstract>
    Five files of epicenter data arranged by date comprise this data
    set.  These files are searchable by magnitude and
    longitude/latitude.  Hardcopy of listing and plot of requested
    area available.  Epicenter location and date, magnitude, and focal
    depth available.
    <Format>DIGITAL DATA SETS</Format>
    <Data-Category>TERRESTRIAL</Data-Category>
    <Comments>
      Data are supplied by the University of Utah Seismograph
      Station. The Utah Geologcial and Mineral Survey (UGMS) is merely
      a clearinghouse of the data.
    </Comments>
  </Abstract>
  <Spatial-Domain>
    <Geographic-Coverage>US STATE</Geographic-Coverage>
    <Coverage-Description>UTAH</Coverage-Description>
    <Bounding-Coordinates>
      <West-Bounding-Coordinate>-114</West-Bounding-Coordinate>
      <East-Bounding-Coordinate>-109</East-Bounding-Coordinate>
      <North-Bounding-Coordinate>42</North-Bounding-Coordinate>
      <South-Bounding-Coordinate>37</South-Bounding-Coordinate>
    </Bounding-Coordinates>
  </Spatial-Domain>
  <Time-Period>
    <Time-Period-Textual>-PRESENT</Time-Period-Textual>
  </Time-Period>
  <Availability>
    <Distributor>
      <Organization>UTAH GEOLOGICAL AND MINERAL SURVEY</Organization>
      <Street-Address>606 BLACK HAWK WAY</Street-Address>
      <City>SALT LAKE CITY</City>
      <State>UT</State>
      <Zip-Code>84108</Zip-Code>
      <Country>USA</Country>
      <Telephone>(801) 581-6831</Telephone>
    </Distributor>
    <Resource-Description>UTAH EARTHQUAKE EPICENTERS</Resource-Description>
    <Technical-Prerequisites>
      <Data-Set-Type>AUTOMATED</Data-Set-Type>
      <Access-Method>BATCH</Access-Method>
      <Number-of-Records>8,700</Number-of-Records>
      <Computer-Type>PC NETWORK</Computer-Type>
      <Computer-Location>SALT LAKE CITY, UT</Computer-Location>
    </Technical-Prerequisites>
  </Availability>
  <Access-Constraints>
    <Documentation>NONE</Documentation>
  </Access-Constraints>
  <Use-Constraints>
    <Status>OPERATIONAL</Status>
  </Use-Constraints>
  <Point-of-Contact>
    <Name>BILL CASE</Name>
    <Organization>UTAH GEOLOGICAL AND MINERAL SURVEY</Organization>
    <Street-Address>606 BLACK HAWK WAY</Street-Address>
    <City>SALT LAKE CITY</City>
    <State>UT</State>
    <Zip-Code>84108</Zip-Code>
    <Country>USA</Country>
    <Telephone>(801) 581-6831</Telephone>
  </Point-of-Contact>
  <Control-Identifier>ESDD0006</Control-Identifier>
  <Record-Source>UTAH GEOLOGICAL AND MINERAL SURVEY</Record-Source>
  <Date-of-Last-Modification>198903</Date-of-Last-Modification>
</gils>
