1 package DBM::Deep::Engine::Sector;
6 use warnings FATAL => 'all';
10 # Please refer to the pack() documentation for further information
12 1 => 'C', # Unsigned char value (no order needed as it's just one byte)
13 2 => 'n', # Unsigned short in "network" (big-endian) order
14 4 => 'N', # Unsigned long in "network" (big-endian) order
15 8 => 'Q', # Usigned quad (no order specified, presumably machine-dependent)
19 my $self = bless $_[1], $_[0];
20 Scalar::Util::weaken( $self->{engine} );
26 #sub clone { DBM::Deep->_throw_error( "Must be implemented in the child class" ); }
28 sub engine { $_[0]{engine} }
29 sub offset { $_[0]{offset} }
30 sub type { $_[0]{type} }
34 return $self->engine->SIG_SIZE + $STALE_SIZE;
40 my $e = $self->engine;
42 $e->storage->print_at( $self->offset, $e->SIG_FREE );
43 # Skip staleness counter
44 $e->storage->print_at( $self->offset + $self->base_size,
45 chr(0) x ($self->size - $self->base_size),
48 my $free_meth = $self->free_meth;
49 $e->$free_meth( $self->offset, $self->size );