diff options
Diffstat (limited to 'lib/ManaTools/Shared/disk_backend/Part.pm')
-rw-r--r-- | lib/ManaTools/Shared/disk_backend/Part.pm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/ManaTools/Shared/disk_backend/Part.pm b/lib/ManaTools/Shared/disk_backend/Part.pm index c88328ba..59f2cb0c 100644 --- a/lib/ManaTools/Shared/disk_backend/Part.pm +++ b/lib/ManaTools/Shared/disk_backend/Part.pm @@ -241,6 +241,8 @@ sub _reverse_tag { return 'parent' if ($tag eq 'child'); return 'previous' if ($tag eq 'next'); return 'next' if ($tag eq 'previous'); + return undef if ($tag eq 'first'); + return undef if ($tag eq 'last'); return undef if ($tag eq 'loaded'); return undef if ($tag eq 'probed'); return undef if ($tag eq 'saved'); @@ -418,6 +420,28 @@ sub changedpart { return $db->changedpart($self, $partstate); } +sub _save { + return 1; +} + +sub save { + my $self = shift; + $self->_save(); + # TODO: merge loaded into saved +} + +sub _diff { + return (); +} + +sub diff { + my $self = shift; + my $partstate = shift; + my $part = $self->part_state($partstate); + + return $self->_diff($part, $partstate); +} + has 'ins' => ( is => 'ro', isa => 'ManaTools::Shared::disk_backend::IOs', @@ -529,6 +553,34 @@ sub is_state { #============================================================= +=head2 part_state + +=head3 INPUT + + $state: PartState + +=head3 OUTPUT + + ManaTools::Shared::disk_backend::Part|undef + +=head3 DESCRIPTION + + this method returns to requested state of this part + +=cut + +#============================================================= +sub part_state { + my $self = shift; + my $state = shift; + return $self->loaded() if ($state == ManaTools::Shared::disk_backend::Part->LoadedState); + return $self->probed() if ($state == ManaTools::Shared::disk_backend::Part->CurrentState); + return $self->saved() if ($state == ManaTools::Shared::disk_backend::Part->FutureState); + return undef; +} + +#============================================================= + =head2 is_loaded =head3 OUTPUT |