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 The Pipeline class inherits from the "Pipeline::Segment" class and therefore also has any additional methods that its superclass may have. 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. get_segment( INTEGER ) Returns the segment located at the index specified by INTEGER del_segment( INTEGER ) Deletes the segment located at the index specified by INTEGER 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. cleanups() Returns the cleanup pipeline. This is a pipeline in and of itself, and all the methods you can call on a pipeline can also be called on this. cleanup() Starts the cleanup pipeline going segments( [ value ] ) "segments" gets and sets the value of the pipeline list. At initialization this is set to an array reference. SEE ALSO "Pipeline::Segment", "Pipeline::Store", "Pipeline::Store::Simple" "Pipeline::Production" AUTHORS James A. Duncan Leon Brocard COPYRIGHT Copyright 2003 Fotango Ltd. Licensed under the same terms as Perl itself.