diff options
author | dakkar <dakkar@thenautilus.net> | 2010-07-12 21:50:31 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2010-07-12 21:50:31 +0100 |
commit | 0581dbd91216c18ded2812ec9f3527c0a889da76 (patch) | |
tree | 37140af2843431af4e181911529a9922c24e8083 /lib/Thread/Task/Role | |
parent | test for TT::Handle (diff) | |
download | Thread-Task-master.tar.gz Thread-Task-master.tar.bz2 Thread-Task-master.zip |
Diffstat (limited to 'lib/Thread/Task/Role')
-rw-r--r-- | lib/Thread/Task/Role/Conduit.pm | 30 |
1 files changed, 30 insertions, 0 deletions
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; |