Apache-Solr
view release on metacpan or search on metacpan
lib/Apache/Solr/Result.pm view on Meta::CPAN
# Copyrights 2012-2025 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.03.
# This code is part of distribution Apache-Solr. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md
# Copyright Mark Overmeer. Licensed under the same terms as Perl itself.
package Apache::Solr::Result;{
our $VERSION = '1.11';
}
use warnings;
no warnings 'recursion'; # linked list of pages can get deep
use strict;
use Log::Report qw(solr);
use Time::HiRes qw(time);
use Scalar::Util qw(weaken);
use Apache::Solr::Document ();
use Data::Dumper;
$Data::Dumper::Indent = 1;
$Data::Dumper::Quotekeys = 0;
use overload
'""' => 'endpoint'
, bool => 'success';
#----------------------
sub new(@) { my $c = shift; (bless {}, $c)->init({@_}) }
sub init($)
{ my ($self, $args) = @_;
my $p = $args->{params} || [];
($p, my $params) = ref $p eq 'HASH' ? ( +[%$p], $p ) : ($p, +{@$p});
$self->{ASR_params} = $p;
$self->{ASR_endpoint} = $args->{endpoint} or panic;
$self->{ASR_start} = time;
$self->request($args->{request});
$self->response($args->{response});
$self->{ASR_pages} = [ $self ]; # first has non-weak page-table
weaken $self->{ASR_pages}[0]; # no reference loop!
if($self->{ASR_core} = $args->{core}) { weaken $self->{ASR_core} }
$self->{ASR_next} = $params->{start} || 0;
$self->{ASR_seq} = $args->{sequential} || 0;
$self->{ASR_fpz} = $args->{_fpz};
$self;
}
# replace the pageset with a shared set.
sub _pageset($)
{ $_[0]->{ASR_pages} = $_[1];
weaken $_[0]->{ASR_pages}; # otherwise memory leak
}
#---------------
sub start() {shift->{ASR_start}}
sub endpoint() {shift->{ASR_endpoint}}
sub params() {@{shift->{ASR_params}}}
sub core() {shift->{ASR_core}}
sub sequential() {shift->{ASR_seq}}
sub request(;$)
{ my $self = shift;
@_ && $_[0] or return $self->{ASR_request};
$self->{ASR_req_out} = time;
$self->{ASR_request} = shift;
}
sub response(;$)
{ my $self = shift;
@_ && $_[0] or return $self->{ASR_response};
$self->{ASR_resp_in} = time;
$self->{ASR_response} = shift;
}
sub decoded(;$)
( run in 0.491 second using v1.01-cache-2.11-cpan-99c4e6809bf )