X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTask%2FSearch.pm;h=73c84976c04aa1e43f4bd2b7140bb166217508f6;hb=63460a3a9c913a4d62d8ee695f31ca6bcec6d25c;hp=25373d77a6f87d6e0122f5ffff8fa5ab8dc453bd;hpb=f8dd3fdf3f500deaf7c3a59285ed613f3b0c3886;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Task/Search.pm b/lib/ZOOM/IRSpy/Task/Search.pm index 25373d7..73c8497 100644 --- a/lib/ZOOM/IRSpy/Task/Search.pm +++ b/lib/ZOOM/IRSpy/Task/Search.pm @@ -1,4 +1,3 @@ -# $Id: Search.pm,v 1.14 2007-05-01 15:32:06 mike Exp $ package ZOOM::IRSpy::Task::Search; @@ -49,14 +48,18 @@ sub run { my $qstr = $this->{qstr}; $this->irspy()->log("irspy_task", $conn->option("host"), " searching for '$qtype:$qstr'"); - die "task $this has resultset?!" if defined $this->{rs}; + if (defined $this->{rs}) { + $this->set_options(); + die "task $this has resultset?!"; + } my $query; if ($qtype eq "pqf") { - $query = new ZOOM::Query::Prefix($qstr); + $query = new ZOOM::Query::PQF($qstr); } elsif ($qtype eq "cql") { $query = new ZOOM::Query::CQL($qstr); } else { + $this->set_options(); die "Huh?!"; } @@ -66,16 +69,28 @@ sub run { # APPLICATION'S RESPONSIBILITY to ensure that the callback # invoked on success OR FAILURE makes arrangements for the set # to be destroyed. - $this->{rs} = $conn->search($query); + eval { + $this->{rs} = $conn->search($query); + }; if ($@) { + $this->set_options(); + die "remote search '$query' had error: '$@'"; + } + warn "no ZOOM-C level events queued by $this" if $conn->is_idle(); $this->set_options(); } +# Unique to Task::Search, used only for logging +sub render_query { + my $this = shift(); + return $this->{qtype} . ":" . $this->{qstr} +} + sub render { my $this = shift(); - return ref($this) . "(" . $this->{qtype} . ":" . $this->{qstr} . ")"; + return ref($this) . "(" . $this->render_query() . ")"; } use overload '""' => \&render;