/[Sack]/trunk/lib/Sack/Digest/BerkeleyDB.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Sack/Digest/BerkeleyDB.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/lib/Sack/Digest.pm revision 50 by dpavlin, Thu Sep 24 19:21:55 2009 UTC trunk/lib/Sack/Digest/BerkeleyDB.pm revision 85 by dpavlin, Tue Sep 29 18:04:29 2009 UTC
# Line 1  Line 1 
1  package Sack::Digest;  package Sack::Digest::BerkeleyDB;
2    
3  =head1 NAME  =head1 NAME
4    
5  Sack::Digest - turn long fields into integers and back  Sack::Digest::BerkeleyDB - turn long fields into integers and back
6    
7  =cut  =cut
8    
# Line 25  sub new { Line 25  sub new {
25    
26          $self->clean if $self->{clean};          $self->clean if $self->{clean};
27    
28          my $path = "/dev/shm/sack.$port";          $self->open;
29    
30            return $self;
31    }
32    
33    
34    sub open {
35            my $self = shift;
36    
37            my $path = "/dev/shm/sack.$self->{port}";
38    
39          $self->{db_md5_nr} ||= tie my %md5_nr, 'BerkeleyDB::Btree',          $self->{db_md5_nr} ||= tie my %md5_nr, 'BerkeleyDB::Btree',
40                  -Filename  => "$path.md5_nr",                  -Filename  => "$path.md5_nr",
# Line 55  sub new { Line 63  sub new {
63    
64          warn "[$port] BDB open $path\n";          warn "[$port] BDB open $path\n";
65    
         return $self;  
66  }  }
67    
68    
# Line 148  sub info { Line 155  sub info {
155          my $self = shift;          my $self = shift;
156          my $info;          my $info;
157          $info->{$_} = $self->{"db_$_"}->db_stat foreach qw( md5_nr nr_md5 md5 );          $info->{$_} = $self->{"db_$_"}->db_stat foreach qw( md5_nr nr_md5 md5 );
158          warn "[$port] BDB info [$seq] ", dump $info;          warn "[$port] BDB info [$seq] ", dump( map { $info->{$_}->{bt_nkeys} } keys %$info );
159          return $info;          return $info;
160  }  }
161    
162    sub lookup {
163            my ( $self, $name, $key ) = @_;
164            die "no lookup $name" unless $self->{$name};
165            die "no key" unless $key;
166    #warn "XXXX $self->{$name}";
167            my $v = $name eq 'nr_md5' ? $self->{ $name }->[$key] : $self->{ $name }->{$key} ;
168            warn "### lookup $name $key = $v\n";
169            return $v;
170    }
171    
172  1;  1;

Legend:
Removed from v.50  
changed lines
  Added in v.85

  ViewVC Help
Powered by ViewVC 1.1.26