2 # ============================================================================
3 # Zebra perl API header
4 # =============================================================================
7 # ============================================================================
8 package IDZebra::Resultset;
10 use IDZebra::Logger qw(:flags :calls);
11 use IDZebra::Repository;
12 use Scalar::Util qw(weaken);
14 our @ISA = qw(IDZebra::Logger);
17 # -----------------------------------------------------------------------------
18 # Class constructors, destructor
19 # -----------------------------------------------------------------------------
21 my ($proto,$session, %args) = @_;
22 my $class = ref($proto) || $proto;
24 $self->{session} = $session;
25 weaken ($self->{session});
28 $self->{ro} = IDZebra::RetrievalObj->new();
29 $self->{odr_stream} = IDZebra::odr_createmem($IDZebra::ODR_DECODE);
31 $self->{name} = $args{name};
32 $self->{recordCount} = $args{recordCount};
33 $self->{errCode} = $args{errCode};
34 $self->{errString} = $args{errString};
36 bless ($self, $class);
43 # print STDERR "Destroy RS\n";
47 if ($self->{odr_stream}) {
48 IDZebra::odr_reset($self->{odr_stream});
49 IDZebra::odr_destroy($self->{odr_stream});
50 $self->{odr_stream} = undef;
54 delete($self->{session});
56 # -----------------------------------------------------------------------------
58 my ($self, %args) = @_;
60 my $from = $args{from} ? $args{from} : 1;
61 my $to = $args{to} ? $args{to} : $self->{recordCount};
63 my $elementSet = $args{elementSet} ? $args{elementSet} : 'R';
64 my $schema = $args{schema} ? $args{schema} : '';
65 my $recordSyntax = $args{recordSyntax} ? $args{recordSyntax} : '';
68 my $ro = IDZebra::RetrievalObj->new();
69 IDZebra::records_retrieve($self->{session}{zh},
82 for (my $i=$from; $i<=$to; $i++) {
83 my $rec = IDZebra::RetrievalRecord->new();
84 IDZebra::record_retrieve($ro, $self->{odr_stream}, $rec, $i-$from+1);
88 IDZebra::odr_reset($self->{odr_stream});
94 my ($self, $sortspec, $setname) = @_;
96 $_[0] = $self->{session}->sortResultsets($sortspec,
97 $self->{name}, ($self));
100 return ($self->{session}->sortResultsets($sortspec,
121 Peter Popovics, pop@technomat.hu
125 IDZebra, IDZebra::Data1, Zebra documentation