+
+=head2 size
+
+Returns number of records in database
+
+ print $isis->size;
+
+Result from this function can be used to loop through all records
+
+ foreach my $mfn ( 1 ... $isis->size ) { ... }
+
+because it takes into account C<start_mfn> and C<limit_mfn>.
+
+=cut
+
+sub size {
+ my $self = shift;
+ return $self->{'size'};
+}
+
+=head2 seek
+
+Seek to specified MFN in file.
+
+ $isis->seek(42);
+
+First record in database has position 1.
+
+=cut
+
+sub seek {
+ my $self = shift;
+ my $pos = shift || return;
+
+ my $log = $self->_get_logger();
+
+ if ($pos < 1) {
+ $log->warn("seek before first record");
+ $pos = 1;
+ } elsif ($pos > $self->{'max_mfn'}) {
+ $log->warn("seek beyond last record");
+ $pos = $self->{'max_mfn'};
+ }
+
+ return $self->{'current_mfn'} = (($pos - 1) || -1);
+}
+