Add general irspy_search() function.
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Connection.pm
index b556447..8d77f5f 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Connection.pm,v 1.10 2007-03-09 08:57:12 mike Exp $
+# $Id: Connection.pm,v 1.14 2007-05-01 15:32:51 mike Exp $
 
 package ZOOM::IRSpy::Connection;
 
@@ -10,7 +10,7 @@ use ZOOM;
 our @ISA = qw(ZOOM::Connection);
 
 use ZOOM::IRSpy::Record;
-use ZOOM::IRSpy::Utils qw(cql_target render_record);
+use ZOOM::IRSpy::Utils qw(cql_target render_record irspy_identifier2target);
 
 use ZOOM::IRSpy::Task::Connect;
 use ZOOM::IRSpy::Task::Search;
@@ -38,14 +38,15 @@ the connection.
 sub create {
     my $class = shift();
     my $irspy = shift();
-    my $target = shift();
+    my $id = shift();
 
     my $this = $class->SUPER::create(@_);
+    my $target = irspy_identifier2target($id);
     $this->option(host => $target);
     $this->{irspy} = $irspy;
     $this->{tasks} = [];
 
-    my $query = cql_target($target);
+    my $query = cql_target($id);
     my $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query));
     my $n = $rs->size();
     $this->log("irspy", "query '$query' found $n records");
@@ -60,7 +61,6 @@ sub create {
 sub destroy {
     my $this = shift();
     $this->SUPER::destroy(@_);
-    $this->{rs}->destroy() if defined $this->{rs};
 }
 
 
@@ -132,12 +132,19 @@ sub irspy_connect {
 }
 
 
-sub irspy_search_pqf {
+sub irspy_search {
     my $this = shift();
-    my($query, $udata, $options, %cb) = @_;
+    my($qtype, $qstr, $udata, $options, %cb) = @_;
 
     $this->add_task(new ZOOM::IRSpy::Task::Search
-                   ($query, $this, $udata, $options, %cb));
+                   ($qtype, $qstr, $this, $udata, $options, %cb));
+}
+
+
+# Wrapper for backwards compatibility
+sub irspy_search_cql {
+    my $this = shift();
+    return $this->irspy_search("pqf", @_);
 }