Explicit setters for (curr|prev|first)_ts.

This commit is contained in:
Brian Fraser
2012-01-10 13:40:51 -03:00
parent 9fd8e8d61d
commit 25909caa4e
3 changed files with 33 additions and 26 deletions

View File

@@ -93,29 +93,35 @@ sub new {
# The next lot are accessors, plus some convenience functions.
sub curr_ts {
my ($self, $val) = @_;
if ($val) {
$self->{_ts}->{curr} = $val;
}
my ($self) = @_;
return $self->{_ts}->{curr} || 0;
}
sub prev_ts {
sub set_curr_ts {
my ($self, $val) = @_;
if ($val) {
$self->{_ts}->{prev} = $val;
}
$self->{_ts}->{curr} = $val || 0;
}
sub prev_ts {
my ($self) = @_;
return $self->{_ts}->{prev} || 0;
}
sub first_ts {
sub set_prev_ts {
my ($self, $val) = @_;
if ($val) {
$self->{_ts}->{first} = $val;
}
$self->{_ts}->{prev} = $val || 0;
}
sub first_ts {
my ($self) = @_;
return $self->{_ts}->{first} || 0;
}
sub set_first_ts {
my ($self, $val) = @_;
$self->{_ts}->{first} = $val || 0;
}
sub filter_zeroed_rows {
my ($self, $new_val) = @_;
if ( defined($new_val) ) {
@@ -306,7 +312,7 @@ sub _save_curr_as_prev {
$self->{_prev_stats_for}->{$dev}->{sum_ios_in_progress} +=
$curr->{$dev}->{ios_in_progress};
}
$self->prev_ts($self->curr_ts());
$self->set_prev_ts($self->curr_ts());
}
return;
@@ -321,7 +327,7 @@ sub _save_curr_as_first {
# be enough.
map { $_ => {%{$curr->{$_}}} } keys %$curr
};
$self->first_ts($self->curr_ts());
$self->set_first_ts($self->curr_ts());
$self->{_first} = undef;
}
}
@@ -627,7 +633,7 @@ sub _load {
if ( $current_ts && %$new_cur ) {
$self->_save_curr_as_prev( $self->stats_for() );
$self->_save_stats($new_cur);
$self->curr_ts($current_ts);
$self->set_curr_ts($current_ts);
$self->_save_curr_as_first( $new_cur );
$new_cur = {};
}
@@ -646,7 +652,7 @@ sub _load {
if ( %{$new_cur} ) {
$self->_save_curr_as_prev( $self->stats_for() );
$self->_save_stats($new_cur);
$self->curr_ts($current_ts);
$self->set_curr_ts($current_ts);
$self->_save_curr_as_first( $new_cur );
$new_cur = {};
}

View File

@@ -64,7 +64,7 @@ sub group_by_all {
},
map( { ($_ => $args{$_}) } qw(filehandle filename data) ),
);
if (!$self->prev_ts) {
if (!$self->prev_ts()) {
seek $args{filehandle}, $orig, 0;
}
return;

View File

@@ -168,15 +168,16 @@ throws_ok( sub { $obj->design_print_formats( columns => {} ) },
qr/The columns argument to design_print_formats should be an arrayref/,
"design_print_formats dies when passed an invalid columns argument");
for my $meth ( qw( curr_ts prev_ts first_ts ) ) {
ok(!$obj->$meth(), "Diskstats->$meth is initially false");
for my $method ( qw( curr_ts prev_ts first_ts ) ) {
my $setter = "set_$method";
ok(!$obj->$method(), "Diskstats->$method is initially false");
$obj->$meth(10);
is($obj->$meth(), 10, "Diskstats->$meth(10) sets it to 10");
$obj->$setter(10);
is($obj->$method(), 10, "Diskstats->$setter(10) sets it to 10");
$obj->$meth(20);
$obj->$setter(20);
$obj->clear_ts();
ok(!$obj->$meth(), "Diskstats->clear_ts does as advertized");
ok(!$obj->$method(), "Diskstats->clear_ts does as advertized");
}
is($obj->out_fh(), \*STDOUT, "by default, outputs to STDOUT");
@@ -371,9 +372,9 @@ EOF
);
}
$obj->curr_ts(0);
$obj->prev_ts(0);
$obj->first_ts(0);
$obj->set_curr_ts(0);
$obj->set_prev_ts(0);
$obj->set_first_ts(0);
throws_ok(
sub { $obj->_calc_deltas() },