DBM/Deep.pm no longer has a link to _storage. Instead, it goes through _engine now...
[dbsrgits/DBM-Deep.git] / lib / DBM / Deep / Engine.pm
index fd7e78e..746736d 100644 (file)
@@ -53,6 +53,9 @@ sub new {
     my $class = shift;
     my ($args) = @_;
 
+    $args->{storage} = DBM::Deep::File->new( $args )
+        unless exists $args->{storage};
+
     my $self = bless {
         byte_size   => 4,
 
@@ -443,6 +446,8 @@ sub setup_fh {
 
             $obj->{staleness} = $initial_reference->staleness;
         }
+
+        $self->storage->set_inode;
     }
 
     return 1;
@@ -872,6 +877,26 @@ sub _request_sector {
 
 ################################################################################
 
+sub lock_exclusive {
+    my $self = shift;
+    my ($obj) = @_;
+    return $self->storage->lock_exclusive( $obj );
+}
+
+sub lock_shared {
+    my $self = shift;
+    my ($obj) = @_;
+    return $self->storage->lock_shared( $obj );
+}
+
+sub unlock {
+    my $self = shift;
+    my ($obj) = @_;
+    return $self->storage->unlock( $obj );
+}
+
+################################################################################
+
 sub storage     { $_[0]{storage} }
 sub byte_size   { $_[0]{byte_size} }
 sub hash_size   { $_[0]{hash_size} }