From 3bdede36ea126b48eb53cb2d827aa1749006ce0f Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Mon, 5 Mar 2007 19:43:10 +0000 Subject: [PATCH] Constructor sets its own "host" option and makes its own record. --- lib/ZOOM/IRSpy/Connection.pm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/ZOOM/IRSpy/Connection.pm b/lib/ZOOM/IRSpy/Connection.pm index 0e32c8b..950c19e 100644 --- a/lib/ZOOM/IRSpy/Connection.pm +++ b/lib/ZOOM/IRSpy/Connection.pm @@ -1,4 +1,4 @@ -# $Id: Connection.pm,v 1.7 2006-11-16 17:18:43 mike Exp $ +# $Id: Connection.pm,v 1.8 2007-03-05 19:43:10 mike Exp $ package ZOOM::IRSpy::Connection; @@ -9,6 +9,9 @@ use warnings; use ZOOM; our @ISA = qw(ZOOM::Connection); +use ZOOM::IRSpy::Record; +use ZOOM::IRSpy::Utils qw(cql_target render_record); + use ZOOM::IRSpy::Task::Connect; use ZOOM::IRSpy::Task::Search; use ZOOM::IRSpy::Task::Retrieve; @@ -26,20 +29,30 @@ Keeping the private data in these objects removes the need for ugly mappings in the IRSpy object itself; adding the methods makes the application code cleaner. -The constructor takes an additional first argument, a reference to the -IRSpy object that it is associated with. +The constructor takes an two additional leading arguments: a reference +to the IRSpy object that it is associated with, and the target ID of +the connection. =cut sub create { my $class = shift(); my $irspy = shift(); + my $target = shift(); my $this = $class->SUPER::create(@_); + $this->option(host => $target); $this->{irspy} = $irspy; - $this->{record} = undef; $this->{tasks} = []; + my $query = cql_target($target); + my $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query)); + my $n = $rs->size(); + $this->log("irspy", "query '$query' found $n records"); + my $zeerex; + $zeerex = render_record($rs, 0, "zeerex") if $n > 0; + $this->{record} = new ZOOM::IRSpy::Record($this, $target, $zeerex); + return $this; } -- 1.7.10.4