use strict;
use warnings FATAL => 'all';
+our $VERSION = $DBM::Deep::VERSION;
+
use DBM::Deep::Iterator ();
# File-wide notes:
=head1 PURPOSE
-This is an internal-use-only object for L<DBM::Deep/>. It mediates the low-level
-mapping between the L<DBM::Deep/> objects and the storage medium.
+This is an internal-use-only object for L<DBM::Deep>. It mediates the low-level
+mapping between the L<DBM::Deep> objects and the storage medium.
The purpose of this documentation is to provide low-level documentation for
developers. It is B<not> intended to be used by the general public. This
=head2 write_value( $obj, $key, $value )
This takes an object that provides _base_offset(), a string for the
-key, and a value. This value can be anything storable within L<DBM::Deep/>.
+key, and a value. This value can be anything storable within L<DBM::Deep>.
This returns 1 upon success.
# XXX Need to add logic about resetting the iterator if any key in the
# reference has changed
- unless ( $prev_key ) {
+ unless ( defined $prev_key ) {
$obj->{iterator} = $self->iterator_class->new({
base_offset => $obj->_base_offset,
engine => $self,
sub cache { $_[0]{cache} ||= {} }
sub clear_cache { %{$_[0]->cache} = () }
+=head2 supports( $option )
+
+This returns a boolean depending on if this instance of DBM::Dep supports
+that feature. C<$option> can be one of:
+
+=over 4
+
+=item * transactions
+
+=back
+
+=cut
+
+sub supports { die "supports must be implemented in a child class" }
+
=head2 ACCESSORS
The following are readonly attributes.