mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
67 lines
1.3 KiB
Perl
67 lines
1.3 KiB
Perl
package Parse::Win32Registry::File;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
sub get_filehandle {
|
|
my $self = shift;
|
|
|
|
return $self->{_filehandle};
|
|
}
|
|
|
|
sub get_filename {
|
|
my $self = shift;
|
|
|
|
return $self->{_filename};
|
|
}
|
|
|
|
sub get_length {
|
|
my $self = shift;
|
|
|
|
return $self->{_length};
|
|
}
|
|
|
|
sub get_entry_iterator {
|
|
my $self = shift;
|
|
|
|
my $entry_iter;
|
|
my $block_iter = $self->get_block_iterator;
|
|
|
|
return Parse::Win32Registry::Iterator->new(sub {
|
|
while (1) {
|
|
if (defined $entry_iter) {
|
|
my $entry = $entry_iter->();
|
|
if (defined $entry) {
|
|
return $entry;
|
|
}
|
|
}
|
|
# entry iterator is undefined or finished
|
|
my $block = $block_iter->();
|
|
if (!defined $block) {
|
|
return; # block iterator finished
|
|
}
|
|
$entry_iter = $block->get_entry_iterator;
|
|
}
|
|
});
|
|
}
|
|
|
|
# method provided for backwards compatibility
|
|
sub move_to_first_entry {
|
|
my $self = shift;
|
|
|
|
$self->{_entry_iter} = undef;
|
|
}
|
|
|
|
# method provided for backwards compatibility
|
|
sub get_next_entry {
|
|
my $self = shift;
|
|
|
|
my $entry_iter = $self->{_entry_iter};
|
|
if (!defined $entry_iter) {
|
|
$self->{_entry_iter} = $entry_iter = $self->get_entry_iterator;
|
|
}
|
|
return $entry_iter->();
|
|
}
|
|
|
|
1;
|