X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FPrefix.pm;h=2fab0e0b4f9437812f5737a77034c8b815f36955;hb=5d10d2095199b0d798926fa9e79a3f580c296b67;hp=fd361ebaaa178865211561087c26ae47eb7bf6d2;hpb=c94ff1bf2cbe16ed59c5b273c7f6730fd7314cab;p=spider.git diff --git a/perl/Prefix.pm b/perl/Prefix.pm index fd361eba..2fab0e0b 100644 --- a/perl/Prefix.pm +++ b/perl/Prefix.pm @@ -16,6 +16,7 @@ use DXDebug; use DXUtil; use USDB; use LRU; +use DXBearing; use strict; @@ -25,7 +26,7 @@ $db = undef; # the DB_File handle %prefix_loc = (); # the meat of the info %pre = (); # the prefix list $hits = $misses = $matchtotal = 1; # cache stats -$lrusize = 1000; # size of prefix LRU cache +$lrusize = 5000; # size of prefix LRU cache sub init { @@ -73,6 +74,8 @@ sub load eval {$db = tie(%pre, "DB_File", undef, O_RDWR|O_CREAT, 0664, $DB_BTREE);}; my $out = "$@($!)" if !$db || $@ ; my $fn = localdata("prefix_data.pl"); + die "Prefix.pm: cannot find $fn, have you run /spider/perl/create_prefix.pl?" unless -e $fn; + eval {do $fn if !$out; }; $out .= $@ if $@; $lru = LRU->newbase('Prefix', $lrusize); @@ -85,49 +88,6 @@ sub loaded return $db; } -sub store -{ - my ($k, $l); - my $fh = new IO::File; - my $fn = localdata("prefix_data.pl"); - - confess "Prefix system not started" if !$db; - - # save versions! - rename "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo"; - rename "$fn.ooo", "$fn.oooo" if -e "$fn.ooo"; - rename "$fn.oo", "$fn.ooo" if -e "$fn.oo"; - rename "$fn.o", "$fn.oo" if -e "$fn.o"; - rename "$fn", "$fn.o" if -e "$fn"; - - $fh->open(">$fn") or die "Can't open $fn ($!)"; - - # prefix location data - $fh->print("%prefix_loc = (\n"); - foreach $l (sort {$a <=> $b} keys %prefix_loc) { - my $r = $prefix_loc{$l}; - $fh->printf(" $l => bless( { name => '%s', dxcc => %d, itu => %d, utcoff => %d, lat => %f, long => %f }, 'Prefix'),\n", - $r->{name}, $r->{dxcc}, $r->{itu}, $r->{cq}, $r->{utcoff}, $r->{lat}, $r->{long}); - } - $fh->print(");\n\n"); - - # prefix data - $fh->print("%pre = (\n"); - foreach $k (sort keys %pre) { - $fh->print(" '$k' => ["); - my @list = @{$pre{$k}}; - my $l; - my $str; - foreach $l (@list) { - $str .= " $l,"; - } - chop $str; - $fh->print("$str ],\n"); - } - $fh->print(");\n"); - undef $fh; - untie %pre; -} # what you get is a list that looks like:- # @@ -522,6 +482,7 @@ my %valid = ( city => '0,City', utcoff => '0,UTC offset', cont => '0,Continent', + qra => '0,Locator', ); sub AUTOLOAD