X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FConnection.pm;h=0a9afa72eac461771c1f2cc28975a28fecca20cb;hp=950c19e1bfead32c55ae919fd02a85a8c0899592;hb=e3c566f5dd0b8c5975f5c9513bf90ef024010149;hpb=3bdede36ea126b48eb53cb2d827aa1749006ce0f diff --git a/lib/ZOOM/IRSpy/Connection.pm b/lib/ZOOM/IRSpy/Connection.pm index 950c19e..0a9afa7 100644 --- a/lib/ZOOM/IRSpy/Connection.pm +++ b/lib/ZOOM/IRSpy/Connection.pm @@ -1,4 +1,4 @@ -# $Id: Connection.pm,v 1.8 2007-03-05 19:43:10 mike Exp $ +# $Id: Connection.pm,v 1.17 2007-12-12 10:45:07 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,17 +38,22 @@ 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"); + ### More than 1 hit is always an error and indicates duplicate + # records in the database; no hits is fine for a new target + # being probed for the first time, but not if the connection is + # being created as part of an "all known targets" scan. my $zeerex; $zeerex = render_record($rs, 0, "zeerex") if $n > 0; $this->{record} = new ZOOM::IRSpy::Record($this, $target, $zeerex); @@ -57,6 +62,12 @@ sub create { } +sub destroy { + my $this = shift(); + $this->SUPER::destroy(@_); +} + + sub irspy { my $this = shift(); return $this->{irspy}; @@ -120,18 +131,25 @@ sub irspy_connect { my $this = shift(); my($udata, $options, %cb) = @_; - my $task = new ZOOM::IRSpy::Task::Connect($this, $udata, $options, %cb); - $this->add_task($task); + $this->add_task(new ZOOM::IRSpy::Task::Connect + ($this, $udata, $options, %cb)); } -sub irspy_search_pqf { +sub irspy_search { my $this = shift(); - my($query, $udata, $options, %cb) = @_; + my($qtype, $qstr, $udata, $options, %cb) = @_; - my $task = new ZOOM::IRSpy::Task::Search($query, - $this, $udata, $options, %cb); - $this->add_task($task); + #warn "calling $this->irspy_search(", join(", ", @_), ")\n"; + $this->add_task(new ZOOM::IRSpy::Task::Search + ($qtype, $qstr, $this, $udata, $options, %cb)); +} + + +# Wrapper for backwards compatibility +sub irspy_search_pqf { + my $this = shift(); + return $this->irspy_search("pqf", @_); } @@ -139,9 +157,8 @@ sub irspy_rs_record { my $this = shift(); my($rs, $index0, $udata, $options, %cb) = @_; - my $task = new ZOOM::IRSpy::Task::Retrieve($rs, $index0, - $this, $udata, $options, %cb); - $this->add_task($task); + $this->add_task(new ZOOM::IRSpy::Task::Retrieve + ($rs, $index0, $this, $udata, $options, %cb)); }