--- trunk/Estraier.pm 2006/01/05 14:30:42 23 +++ trunk/Estraier.pm 2006/01/05 22:16:21 37 @@ -478,10 +478,10 @@ package Search::Estraier::ResultDocument; -use Carp qw/confess croak/; +use Carp qw/croak/; -use Search::Estraier; -our @ISA = qw/Search::Estraier/; +#use Search::Estraier; +#our @ISA = qw/Search::Estraier/; =head1 Search::Estraier::ResultDocument @@ -580,59 +580,293 @@ } -package Search::Estraier::Master; +package Search::Estraier::NodeResult; -use Carp; +use Carp qw/croak/; -=head1 Search::Estraier::Master +#use Search::Estraier; +#our @ISA = qw/Search::Estraier/; -Controll node master. This requires user with administration priviledges. +=head1 Search::Estraier::NodeResult + +=head2 new + + my $res = new Search::HyperEstraier::NodeResult( + docs => @array_of_rdocs, + hits => %hash_with_hints, + ); =cut -{ - package RequestAgent; - our @ISA = qw(LWP::UserAgent); +sub new { + my $class = shift; + my $self = {@_}; + bless($self, $class); - sub new { - my $self = LWP::UserAgent::new(@_); - $self->agent("Search-Estraier/$Search::Estraer::VERSION"); - $self; + foreach my $f (qw/docs hints/) { + croak "missing $f for ResultDocument" unless defined($self->{$f}); } - sub get_basic_credentials { - my($self, $realm, $uri) = @_; -# return ($user, $password); - } + $self ? return $self : return undef; } +=head2 doc_num +Return number of documents -=head2 new + print $res->doc_num; -Create new connection to node master. +=cut - my $master = new Search::Estraier::Master( - url => 'http://localhost:1978', - user => 'admin', - passwd => 'admin', - ); +sub doc_num { + my $self = shift; + return $#{$self->{docs}}; +} + +=head2 get_doc + +Return single document + + my $doc = $res->get_doc( 42 ); + +Returns undef if document doesn't exist. + +=cut + +sub get_doc { + my $self = shift; + my $num = shift; + croak "expect number as argument" unless ($num =~ m/^\d+$/); + return undef if ($num < 0 || $num > $self->{docs}); + return $self->{docs}->[$num]; +} + +=head2 hint + +Return specific hint from results. + + print $rec->hint( 'VERSION' ); + +Possible hints are: C, C, C, C, C, C, +C