Anansi-Component
view release on metacpan or search on metacpan
lib/Anansi/Component.pm view on Meta::CPAN
package Anansi::Component;
=head1 NAME
Anansi::Component - A base module definition for related processes that are managed.
=head1 SYNOPSIS
package Anansi::ComponentManagerExample::ComponentExample;
use base qw(Anansi::Component);
sub validate {
return 1;
}
sub doSomething {
my ($self, $channel, %parameters) = @_;
}
Anansi::Component::addChannel(
'Anansi::ComponentManagerExample::ComponentExample',
'VALIDATE_AS_APPROPRIATE' => Anansi::ComponentManagerExample::ComponentExample->validate
);
Anansi::Component::addChannel(
'Anansi::ComponentManagerExample::ComponentExample',
'SOME_COMPONENT_CHANNEL' => Anansi::ComponentManagerExample::ComponentExample->doSomething
);
1;
package Anansi::ComponentManagerExample;
use base qw(Anansi::ComponentManager);
sub doSomethingElse {
my ($self, $channel, %parameters) = @_;
}
Anansi::ComponentManager::addChannel(
'Anansi::ComponentManagerExample',
'SOME_MANAGER_CHANNEL' => Anansi::ComponentManagerExample->doSomethingElse
);
1;
package main;
use Anansi::ComponentManagerExample;
my $object = Anansi::ComponentManagerExample->new();
my $component = $object->addComponent();
my $result = $object->channel(
$component,
'SOME_COMPONENT_CHANNEL',
someParameter => 'some data',
);
1;
=head1 DESCRIPTION
This is a base module definition for related functionality modules. This module
provides the mechanism to be handled by a L<Anansi::ComponentManager> module.
In order to simplify the recognition and management of related I<component>
modules, each component is required to have the same base namespace as it's
manager. Uses L<Anansi::Actor|Anansi::Actor>.
=cut
our $VERSION = '0.08';
use base qw(Anansi::Class);
use Anansi::Actor;
my %CHANNELS;
=head1 METHODS
( run in 0.821 second using v1.01-cache-2.11-cpan-140bd7fdf52 )