NAME
Term::MultiSpinner - Term::Spinner with multiple spinners
SYNOPSIS
use Term::MultiSpinner;
my $spinner = Term::MultiSpinner->new();
while(... a complicated async loop ...) {
    if(... can read some data ...) {
        $spinner->advance(0);
        # read stuff
        $spinner->finish(0) if $done_reading;
    }
    if(... can write some data ...) {
        $spinner->advance(1);
        # write stuff
        $spinner->finish(1) if $done_writing;
    }
}
undef $spinner; # clears final spinner output by default.
DESCRIPTION
This is a subclass of Term::Spinner, see those docs first.
This class provides multiple spinners on the same line, to represent the state of several asynchronous long-running tasks. Ideal for a complex select-based loop, a POE process, etc.
Another good place to use it is if you have a long queue of short tasks to complete and can only do a small number in parallel at a time. Use the first spinner to indicate when a task is taken from the queue and started, and the second spinner to indicate task completion.
The docs below only indicate deviations from the interface of Term::Spinner, see those docs for the basic information.
METHODS
clear
draw
advance
Requires an argument, which is the integer spinner slot to advance. The first spinner is 0. The number of spinners on the screen will always automagically expand to include the entire range of 0 through the highest number you've directly accessed.
finish
Requires an argument, which is the integer spinner slot to finish. The first spinner is 0. The number of spinners on the screen will always automagically expand to include the entire range of 0 through the highest number you've directly accessed.
advance_all
Calls "advance" on all spinners.
finish_all
Calls "finish" on all spinners.
AUTHOR
Brandon L. Black, <blblack@gmail.com>
COPYRIGHT AND LICENSE
Copyright 2007 Brandon L. Black
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.