Optimization: First broke out all the classes that were in Engine.pm so that I can...
[dbsrgits/DBM-Deep.git] / lib / DBM / Deep / Engine / Sector / Null.pm
1 package DBM::Deep::Engine::Sector::Null;
2
3 use 5.006;
4
5 use strict;
6 use warnings FATAL => 'all';
7
8 use DBM::Deep::Engine::Sector::Data;
9 our @ISA = qw( DBM::Deep::Engine::Sector::Data );
10
11 sub type { $_[0]{engine}->SIG_NULL }
12 sub data_length { 0 }
13 sub data { return }
14
15 sub _init {
16     my $self = shift;
17
18     my $engine = $self->engine;
19
20     unless ( $self->offset ) {
21         $self->{offset} = $engine->_request_data_sector( $self->size );
22
23         my $string = chr(0) x $self->size;
24
25         substr( $string, 0, 1, $self->type );
26         substr( $string, $self->base_size, $engine->byte_size + 1,
27             pack( $engine->StP($engine->byte_size), 0 )   # Chain loc
28           . pack( $engine->StP(1), $self->data_length ),  # Data length
29         );
30
31         $engine->storage->print_at( $self->offset, $string );
32
33         return;
34     }
35 }
36
37 1;
38 __END__