1 # $Id: Task.pm,v 1.4 2006-10-25 13:34:56 mike Exp $
3 package ZOOM::IRSpy::Task;
11 ZOOM::IRSpy::Task - base class for tasks in IRSpy
15 use ZOOM::IRSpy::Task;
16 package ZOOM::IRSpy::Task::SomeTask;
17 our @ISA = qw(ZOOM::IRSpy::Task);
18 # ... override methods
22 This class provides a base-class from which individual IRSpy task
23 classes can be derived. For example, C<ZOOM::IRSpy::Task::Search>
24 will represent a searching task, carrying with it a query, a pointer
27 The base class provides nothing more exciting than a link to a
28 callback function to be called when the task is complete, and a
29 pointer to the next task to be performed after this.
35 my($conn, $udata, $options, %cb) = @_;
38 irspy => $conn->{irspy},
43 timeRegistered => time(),
50 return $this->{irspy};
60 return $this->{udata};
65 die "can't run base-class task $this";
71 foreach my $key (sort keys %{ $this->{options} }) {
72 my $value = $this->{options}->{$key};
73 $value = "" if !defined $value;
74 $this->conn()->log("irspy_debug", "$this setting option '$key' -> ",
75 defined $value ? "'$value'" : "undefined");
76 $this->{options}->{$key} = $this->conn()->option($key, $value);
77 #Net::Z3950::ZOOM::connection_option_set($this->conn()->_conn(), $key, $value);
83 return "[base-class] " . ref($this);
86 use overload '""' => \&render;
95 Mike Taylor, E<lt>mike@indexdata.comE<gt>
97 =head1 COPYRIGHT AND LICENSE
99 Copyright (C) 2006 by Index Data ApS.
101 This library is free software; you can redistribute it and/or modify
102 it under the same terms as Perl itself, either Perl version 5.8.7 or,
103 at your option, any later version of Perl 5 you may have available.