aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaarten Vanraes <alien@mageia.org>2016-05-14 17:43:10 +0200
committerMaarten Vanraes <alien@mageia.org>2016-05-14 17:43:10 +0200
commit3506a829ca48a2b8cb4c7953fe199ed10ef18424 (patch)
tree2543dc83d6c6e905b4775affcf48900bd0dd2017
parenta10b2a1f511e0389c8a3a63220410b942dde4e96 (diff)
downloadmanatools-3506a829ca48a2b8cb4c7953fe199ed10ef18424.tar
manatools-3506a829ca48a2b8cb4c7953fe199ed10ef18424.tar.gz
manatools-3506a829ca48a2b8cb4c7953fe199ed10ef18424.tar.bz2
manatools-3506a829ca48a2b8cb4c7953fe199ed10ef18424.tar.xz
manatools-3506a829ca48a2b8cb4c7953fe199ed10ef18424.zip
make a changedpart trigger for loading/probing/saving a part
-rw-r--r--lib/ManaTools/Shared/disk_backend.pm26
-rw-r--r--lib/ManaTools/Shared/disk_backend/Part.pm7
-rw-r--r--lib/ManaTools/Shared/disk_backend/Plugin.pm24
3 files changed, 57 insertions, 0 deletions
diff --git a/lib/ManaTools/Shared/disk_backend.pm b/lib/ManaTools/Shared/disk_backend.pm
index 223d8082..d42f6499 100644
--- a/lib/ManaTools/Shared/disk_backend.pm
+++ b/lib/ManaTools/Shared/disk_backend.pm
@@ -336,6 +336,32 @@ sub probe {
#=============================================================
+=head2 changedpart
+
+=head3 INPUT
+
+ $part: ManaTools::Shared::disk_backend::Part
+ $state: PartState (L, P, S)
+
+=head3 DESCRIPTION
+
+ this method will call changedpart for all plugins, should only be called when a module is done with the changed part
+
+=cut
+
+#=============================================================
+sub changedpart {
+ my $self = shift;
+ my $part = shift;
+ my $state = shift;
+
+ for my $plugin (@{$self->plugins}) {
+ $plugin->changedpart($part, $state);
+ }
+}
+
+#=============================================================
+
=head2 probeio
=head3 OUTPUT
diff --git a/lib/ManaTools/Shared/disk_backend/Part.pm b/lib/ManaTools/Shared/disk_backend/Part.pm
index 4c293493..c88328ba 100644
--- a/lib/ManaTools/Shared/disk_backend/Part.pm
+++ b/lib/ManaTools/Shared/disk_backend/Part.pm
@@ -411,6 +411,13 @@ sub mkpart {
return $part;
}
+sub changedpart {
+ my $self = shift;
+ my $partstate = shift;
+ my $db = $self->db();
+ return $db->changedpart($self, $partstate);
+}
+
has 'ins' => (
is => 'ro',
isa => 'ManaTools::Shared::disk_backend::IOs',
diff --git a/lib/ManaTools/Shared/disk_backend/Plugin.pm b/lib/ManaTools/Shared/disk_backend/Plugin.pm
index ebd4a02f..7fb3155f 100644
--- a/lib/ManaTools/Shared/disk_backend/Plugin.pm
+++ b/lib/ManaTools/Shared/disk_backend/Plugin.pm
@@ -189,6 +189,30 @@ sub probe {
#=============================================================
+=head2 changedpart
+
+=head3 INPUT
+
+ $part: ManaTools::Shared::disk_backend::Part
+ $state: PartState (L, P, S)
+
+=head3 DESCRIPTION
+
+ this is a default method for announcing a changed Part, the idea is to override it if needed
+
+=cut
+
+#=============================================================
+sub changedpart {
+ my $self = shift;
+ my $part = shift;
+ my $state = shift;
+
+ 1;
+}
+
+#=============================================================
+
=head2 loadio
=head3 INPUT