version 1.30, 2005/04/07 06:56:23
|
version 1.31, 2005/05/13 20:30:14
|
Line 101 sub initialize_sequence_cache {
|
Line 101 sub initialize_sequence_cache {
|
for my $sequence ($navmap->getById('0.0'), @all_sequences) { |
for my $sequence ($navmap->getById('0.0'), @all_sequences) { |
if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){ |
if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){ |
push(@Sequences,$sequence); |
push(@Sequences,$sequence); |
|
&get_resources($sequence); |
} |
} |
} |
} |
} |
} |
|
|
|
my %res_memoize; |
sub get_resources { |
sub get_resources { |
my ($seq) = @_; |
my ($seq) = @_; |
|
if (exists($res_memoize{$seq->symb()})) { |
|
return @{$res_memoize{$seq->symb()}}; |
|
} |
return () if (! defined($navmap) || ! ref($navmap)); |
return () if (! defined($navmap) || ! ref($navmap)); |
my @resources = $navmap->retrieveResources($seq, |
my @resources = $navmap->retrieveResources($seq, |
sub { shift->is_problem(); }, |
sub { shift->is_problem(); }, |
0,0,0); |
0,0,0); |
|
$res_memoize{$seq->symb()}=\@resources; |
return @resources; |
return @resources; |
} |
} |
|
|
sub clear_package { |
sub clear_package { |
undef(@Sequences); |
undef(@Sequences); |
undef(%Exportrows); |
undef(%Exportrows); |
|
undef(%res_memoize); |
&Apache::assesscalc::clear_package(); |
&Apache::assesscalc::clear_package(); |
} |
} |
|
|