From 0581dbd91216c18ded2812ec9f3527c0a889da76 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 12 Jul 2010 21:50:31 +0100 Subject: test for TT::Manager & signaling --- lib/Thread/Task/Role/Conduit.pm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 lib/Thread/Task/Role/Conduit.pm (limited to 'lib/Thread/Task/Role/Conduit.pm') diff --git a/lib/Thread/Task/Role/Conduit.pm b/lib/Thread/Task/Role/Conduit.pm new file mode 100644 index 0000000..1ffbd04 --- /dev/null +++ b/lib/Thread/Task/Role/Conduit.pm @@ -0,0 +1,30 @@ +use 5.008003; +use MooseX::Declare; + +role Thread::Task::Role::Conduit { + use MooseX::Types::Moose qw(ClassName); + use Thread::Task::Types qw(Manager_T); + use Carp; + + requires 'signal'; + + has manager => ( + isa => Manager_T, + is => 'ro', + required => 0, + writer => '_set_manager', + predicate => '_has_manager', + ); + + method conduit_init(Manager_T $manager) { + $self->_set_manager($manager); + } + + before signal { + if (!$self->_has_manager) { + croak "Can't signal without a manager"; + } + } +} + +1; -- cgit v1.2.3