-# $Id: Search.pm,v 1.7 2006-11-16 14:58:55 mike Exp $
+# $Id: Search.pm,v 1.13 2007-03-14 11:56:35 mike Exp $
package ZOOM::IRSpy::Task::Search;
$this->set_options();
my $conn = $this->conn();
+ $conn->connect($conn->option("host"));
+
my $query = $this->{query};
$this->irspy()->log("irspy_task", $conn->option("host"),
" searching for '$query'");
+ die "task $this has resultset?!" if defined $this->{rs};
+
+ ### Note well that when this task runs, it creates a result-set
+ # object which MUST BE DESTROYED in order to prevent large-scale
+ # memory leakage. So when creating a Task::Search, it is the
+ # 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_pqf($query);
warn "no ZOOM-C level events queued by $this"
if $conn->is_idle();
$this->set_options();
-
- # I want to catch the situation where a search is attempted on a
- # not-yet opened connection (e.g. the Search::Title test is run
- # before Ping) but since this situation doesn't involve the
- # generation of a ZOOM event, the main loop won't see an error.
- # So I check for it immediately:
- $conn->_check();
- # ### Unfortunately, this also fails to detect the condition I'm
- # concerned with, so I think I am out of luck.
}
sub render {