MyCPAN::Indexer::Coordinator - Provide a way for the various components to communicate
my $componentA = MyCPAN::Indexer::ComponentA->new; my $componentB = MyCPAN::Indexer::ComponentB->new; my $coordinator = MyCPAN::Indexer::Coordinator->new; # each component gets a reference $componentA->set_coordinator( $coordinator ); $componentB->set_coordinator( $coordinator ); # the coordinator knows about all of the components $coordinator->set_component( 'A', $componentA ); $coordinator->set_component( 'B', $componentB ); $componentA->set_note( 'cat', 'Buster' ); my $cat = $componentB->get_note( 'cat' ); # Any component can find any other component $componentB->get_coordinator->get_component( 'A' )->method_in_A;
The coordinator keeps track of the components in MyCPAN::Indexer. It acts as a central point where all comunication can flow so everything can talk to everything with only 2N connections.
MyCPAN::Indexer
It automatically sets up a notes object to act as a scratchpad. Every component can read from and write to the notes object.
Create a new Coordinator object.
Retrieve the component named NAME.
Set the component with name NAME to REFERENCE. So far there are no restrictions on reference, but it should be a subclass of MyCPAN::Indexer::Component or at least something that acts like that class.
MyCPAN::Indexer::Component
As a convenience, these methods dispatch to the notes object:
get_note set_note get_config set_config increment_note decrement_note push_onto_note unshift_onto_note get_note_list_element set_note_unless_defined
This code is in Github:
git://github.com/briandfoy/mycpan-indexer.git
brian d foy, <bdfoy@cpan.org>
<bdfoy@cpan.org>
Copyright (c) 2008-2010, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
To install MyCPAN::Indexer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MyCPAN::Indexer
CPAN shell
perl -MCPAN -e shell install MyCPAN::Indexer
For more information on module installation, please visit the detailed CPAN module installation guide.