NAME Pipeline - Generic pipeline interface SYNOPSIS use Pipeline; my $pipeline = Pipeline->new(); $pipeline->add_segment( @segments ); $pipeline->dispatch(); DESCRIPTION "Pipelines" are a mechanism to process data. They are designed to be plugged together to make fairly complex operations act in a fairly straightforward manner, cleanly, and simply. USING THE PIPELINE MODULE The usage of the generic pipeline module is fairly simple. You instantiate a Pipeline object by using the *new()* constructor. Segments can be added to the pipeline with the add_segment method. The store that the Pipeline will use can be set by calling the *store()* method later on. If a store is not set by the time a pipeline is executing then it will use a store of the type "Pipeline::Store::Simple" To start the pipeline running call the *dispatch()* method on your Pipeline object. To see what is being dispatched within a pipeline dispatch set the pipeline's debug value to true. WRITING A PIPELINE INHERITANCE Pipelines are designed to be inherited from. The inheritance tree is somewhat warped and should look a little like this: MySegment --> Pipeline::Segment <--- Pipeline In other words, everything is a pipeline segment. METHODS init() Things to do at construction time. If you do override this, its will often be fairly important that you call $self->SUPER::init() to make sure that the setup is done correctly. add_segment( LIST ) Adds a segment or segments to the pipeline. add_cleanup( LIST ) Adds a segment or segments to the cleanup pipeline, that gets executed after the pipeline has finished. dispatch() Starts the pipeline execution, returns the production or undef dispatch_loop( Pipeline, [ ARRAYREF ] ) The "dispatch_loop" method performs the processing for the pipeline dispatch_segment( Pipeline::Segment ) The "dispatch_segment" method handles the execution of an individual segment object. cleanup( [ value ] ) "cleanup" gets and sets the value of the cleanup list. At initialization this is set to an array reference. pipeline( [ value ] ) "pipeline" gets and sets the value of the pipeline list. At initialization this is set to an array reference. store( [ Pipeline::Store ] ) "store" gets and sets the value of a Pipeline's store. At initialization this is set to a Pipeline::Store::Simple object. SEE ALSO "Pipeline::Segment" AUTHOR James A. Duncan Leon Brocard COPYRIGHT Copyright 2002 Fotango Ltd. Licensed under the same terms as Perl itself.