r14847 - in /branches/upstream/libacme-poe-knee-perl: ./ current/ current/lib/ current/lib/Acme/ current/lib/Acme/POE/

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Wed Feb 13 20:26:14 UTC 2008


Author: gregoa-guest
Date: Wed Feb 13 20:26:13 2008
New Revision: 14847

URL: http://svn.debian.org/wsvn/?sc=1&rev=14847
Log:
[svn-inject] Installing original source of libacme-poe-knee-perl

Added:
    branches/upstream/libacme-poe-knee-perl/
    branches/upstream/libacme-poe-knee-perl/current/
    branches/upstream/libacme-poe-knee-perl/current/Changes
    branches/upstream/libacme-poe-knee-perl/current/MANIFEST
    branches/upstream/libacme-poe-knee-perl/current/Makefile.PL
    branches/upstream/libacme-poe-knee-perl/current/README
    branches/upstream/libacme-poe-knee-perl/current/demo_race.pl
    branches/upstream/libacme-poe-knee-perl/current/demo_simple.pl
    branches/upstream/libacme-poe-knee-perl/current/lib/
    branches/upstream/libacme-poe-knee-perl/current/lib/Acme/
    branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/
    branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/Knee.pm

Added: branches/upstream/libacme-poe-knee-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/Changes?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/Changes (added)
+++ branches/upstream/libacme-poe-knee-perl/current/Changes Wed Feb 13 20:26:13 2008
@@ -1,0 +1,16 @@
+Revision history for Perl extension Acme::POE::Knee
+
+1.10    Thu Aug 23 15:40:45 2001
+    - changed the way delay works:
+        there's no longer generic delay for ponies,
+        but you can specify maximum delay per pony now.
+
+1.02    Tue Aug 14 15:43:21 2001
+    - touched up the POD upon request
+    
+1.01    Tue Aug 14 10:19:43 2001
+    - small cosmetic changes
+
+1.00	Mon Aug 13 10:41:16 2001
+    - original version
+

Added: branches/upstream/libacme-poe-knee-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/MANIFEST?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/MANIFEST (added)
+++ branches/upstream/libacme-poe-knee-perl/current/MANIFEST Wed Feb 13 20:26:13 2008
@@ -1,0 +1,7 @@
+Changes
+MANIFEST
+Makefile.PL
+README
+demo_race.pl
+demo_simple.pl
+lib/Acme/POE/Knee.pm

Added: branches/upstream/libacme-poe-knee-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/Makefile.PL?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/Makefile.PL (added)
+++ branches/upstream/libacme-poe-knee-perl/current/Makefile.PL Wed Feb 13 20:26:13 2008
@@ -1,0 +1,5 @@
+use ExtUtils::MakeMaker;
+WriteMakefile(
+		NAME	=> 'Acme::POE::Knee',
+		VERSION => '1.10',
+	     );

Added: branches/upstream/libacme-poe-knee-perl/current/README
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/README?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/README (added)
+++ branches/upstream/libacme-poe-knee-perl/current/README Wed Feb 13 20:26:13 2008
@@ -1,0 +1,122 @@
+NAME
+    Acme::POE::Knee - Time sliced pony race using the POE kernel.
+
+REQUIREMENTS
+        Acme::POE::Knee requires the POE module to run. You can get that as well
+        from CPAN or look at poe.sourceforge.net
+
+SYNOPSIS
+        #!/usr/bin/perl -w
+        use strict;
+
+        # Use POEny!
+        use Acme::POE::Knee;
+
+        # Every Acme::POE::Knee race will require a set of arguments. 
+        # There are defaults but it's just more fun to set these 
+        # yourselves. We set a distance the ponies must run and of course 
+        # we name our race ponies! You'll have to specify the maximum 
+        # delay a pony can have before reaching the next stage.
+        # The lower the delay, the higher the chances are the pony will 
+        # win the race.
+
+        my $pony = new Acme::POE::Knee (
+            dist        => 20,
+            ponies  => {
+                'dngor'     => 5,
+                'Abigail'   => 5.2, 
+                'Co-Kane'   => 5.4, 
+                'MJD'       => 5.6,
+                'acme'      => 5.8, 
+            },
+        );
+    
+        # start the race
+        $pony->race( );
+    
+        exit;
+
+QUICK LINKS
+    Please see the samples directory in POE's distribution for several
+    well-commented sample and tutorial programs.
+
+    Please see <http://www.perl.com/pub/2001/01/poe.html> for an excellent,
+    and more importantly: gradual, introduction to POE.
+
+DESCRIPTION
+    POE::Knee is an acronym of "Pony". We all like ponies. And wouldn't we
+    love to race ponies? Well, that's what Acme::POE::Knee is for!
+
+    It's great for those friday afternoons at the office, where you wonder
+    who will pay the beer tab. Whoever 'wins' the race, loses!
+
+    You specify a distance the ponies must run, and a maximum delay before
+    the pony will reach the next step. So, the bigger the delay, the bigger
+    the distance between multiple ponies can be.
+
+    Of course this wouldn't be any fun if we couldn't name the ponies
+    ourselves. Here, we simply put all our race ponies in an array reference
+    and the Acme::POE::Knee module will take care of the rest.
+
+USING Acme::POE::Knee
+    Using Acme::POE::Knee is really easy. This simple progam would already
+    suffice:
+
+        use strict;
+        use Acme::POE::Knee;
+
+        my $pony = new Acme::POE::Knee;
+        $pony->race();
+        exit;
+
+    This will use the defaults of the POE::Knee module, but you can of
+    course specify your own arguments, as shown in the synopsis.
+
+The Use of Acme::POE::Knee
+    Use, yes... Usefull? Probably not. This was written in responce to a
+    rather persistant meme on #perl (you know who you are!). Basicly, we all
+    wanted ponies. Well folks, here it is.
+
+    It's source might be interesting to look at for newcomers to POE to see
+    how this time slicing works.
+
+Learning more about POE
+    The POE Mailing List
+      POE has a mailing list at perl.org. You can receive subscription
+      information by sending e-mail:
+
+        To: poe-help at perl.org
+        Subject: (anything will do)
+
+        The message body is ignored.
+
+      All forms of feedback are welcome.
+
+    The POE Web Site
+      POE has a web site where the latest development snapshot, along with
+      the Changes file and other stuff may be found: <http://poe.perl.org/>
+
+    SourceForge
+      POE's development has moved to SourceForge as an experiment in project
+      management. You can reach POE's project summary page at
+      <http://sourceforge.net/projects/poe/>.
+
+  Author
+
+    Jos Boumans
+      Jos Boumans is <kane_at_cpan.org>. POE::Knee is his brainchild.
+
+    Rocco Caputo
+      Rocco Caputo is <troc+poe at netrus.net>. POE itself is his creation.
+
+  COPYRIGHT
+
+      Copyright (c) 2001, Jos Boumans. All Rights Reserved. This module is
+      free software. It may be used, redistributed and/or modified under the
+      terms of the Perl Artistic License (see
+      http://www.perl.com/perl/misc/Artistic.html)
+
+      Except where otherwise noted, POE is Copyright 1998-2001 Rocco Caputo.
+      All rights reserved. POE is free software; you may redistribute it
+      and/or modify it under the same terms as Perl itself.
+

Added: branches/upstream/libacme-poe-knee-perl/current/demo_race.pl
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/demo_race.pl?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/demo_race.pl (added)
+++ branches/upstream/libacme-poe-knee-perl/current/demo_race.pl Wed Feb 13 20:26:13 2008
@@ -1,0 +1,22 @@
+#!/usr/bin/perl -w
+use strict;
+
+# Use POEny!
+use Acme::POE::Knee;
+
+        
+my $pony = new Acme::POE::Knee (
+	dist        => 20,
+    ponies  => {
+        'dngor'     => 5,
+        'Abigail'   => 5.2, 
+        'Co-Kane'   => 5.4, 
+        'MJD'       => 5.6,
+        'acme'      => 5.8, 
+    },
+);
+
+# start the race
+$pony->race( );
+
+exit;

Added: branches/upstream/libacme-poe-knee-perl/current/demo_simple.pl
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/demo_simple.pl?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/demo_simple.pl (added)
+++ branches/upstream/libacme-poe-knee-perl/current/demo_simple.pl Wed Feb 13 20:26:13 2008
@@ -1,0 +1,9 @@
+#!/usr/bin/perl -w
+use strict;
+
+use Acme::POE::Knee;
+
+my $pony = new Acme::POE::Knee;
+$pony->race();
+
+exit;

Added: branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/Knee.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/Knee.pm?rev=14847&op=file
==============================================================================
--- branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/Knee.pm (added)
+++ branches/upstream/libacme-poe-knee-perl/current/lib/Acme/POE/Knee.pm Wed Feb 13 20:26:13 2008
@@ -1,0 +1,239 @@
+package Acme::POE::Knee;
+use strict;
+use POE;
+use vars qw($VERSION);
+
+$VERSION = "1.10";
+
+sub new {
+    my $class   = shift;
+    my %args    = @_;
+    my $self    = { };
+    my $data    = {
+        dist    => 10,
+        ponies  => {
+            'dngor'     => 5,
+            'Abigail'   => 5.2, 
+            'Co-Kane'   => 5.4, 
+            'MJD'       => 5.6,
+            'acme'      => 5.8, 
+        },
+    };  
+
+    ### check for wrong input ###
+    for my $key ( keys %args ) {
+        unless( exists $data->{$key} ) {
+            print "WARNING! Option $key is not supported in $class!\n";
+        }
+    }
+
+    ### bless the object into the class ###
+    bless $self, $class;
+
+    ### now we start adding the data ###
+    for my $key (keys %$data) {
+      if ( exists $args{$key} ) {
+            $self->{$key} = $args{$key};
+        } else {
+            $self->{$key} = $data->{$key};
+        }
+    }
+
+    ### fetch the data ###
+    sub dist    { my $self = shift; $self->{dist}     }
+    sub ponies  { my $self = shift; $self->{ponies}   }
+
+    return $self;
+    
+}
+
+sub _start {
+    my ($kernel, $heap, $name, $delay, $dist) = @_[KERNEL, HEAP, ARG0, ARG1, ARG2];
+    
+    $heap->{name}   = $name;
+    $heap->{delay}  = $delay;
+    $heap->{dist}   = $dist;
+    
+    printf "Starting pony %10s\n", $heap->{name};
+    $kernel->delay_add( run => rand($heap->{delay}) );
+}
+
+sub run {
+    my ($kernel, $heap) = @_[KERNEL, HEAP];
+    printf "Pony %10s has reached stage %3i\n", $heap->{name}, ++$heap->{stage};
+    die "$heap->{name} won the race!\n" if $heap->{stage} > $heap->{dist};
+    $kernel->delay_add( run => rand($heap->{delay}) );
+}
+
+sub race {
+    my $self = shift;
+
+    for my $name (@{[keys %{$self->ponies()}]} ) {
+
+        POE::Session->create (  
+           inline_states => { 
+               _start  => \&_start,
+               run     => \&run,
+            },
+            args => [ $name, $self->ponies()->{$name}, $self->dist() ],
+        );
+    }
+    $poe_kernel->run();
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Acme::POE::Knee - Time sliced pony race using the POE kernel.
+
+
+=head1 REQUIREMENTS
+
+    Acme::POE::Knee requires the POE module to run. You can get that as well
+    from CPAN or look at poe.sourceforge.net
+
+
+=head1 SYNOPSIS
+
+    #!/usr/bin/perl -w
+    use strict;
+
+    # Use POEny!
+    use Acme::POE::Knee;
+
+    # Every Acme::POE::Knee race will require a set of arguments. 
+    # There are defaults but it's just more fun to set these 
+    # yourselves. We set a distance the ponies must run and of course 
+    # we name our race ponies! You'll have to specify the maximum 
+    # delay a pony can have before reaching the next stage.
+    # The lower the delay, the higher the chances are the pony will 
+    # win the race.
+
+    my $pony = new Acme::POE::Knee (
+    	dist        => 20,
+        ponies  => {
+            'dngor'     => 5,
+            'Abigail'   => 5.2, 
+            'Co-Kane'   => 5.4, 
+            'MJD'       => 5.6,
+            'acme'      => 5.8, 
+        },
+    );
+    
+    # start the race
+    $pony->race( );
+    
+    exit;
+
+
+=head1 QUICK LINKS
+
+Please see the samples directory in POE's distribution for several
+well-commented sample and tutorial programs.
+
+Please see <http://www.perl.com/pub/2001/01/poe.html> for an excellent,
+and more importantly: gradual, introduction to POE.
+
+
+=head1 DESCRIPTION
+
+POE::Knee is an acronym of "Pony".  We all like ponies. And wouldn't we
+love to race ponies? Well, that's what Acme::POE::Knee is for!
+
+It's great for those friday afternoons at the office, where you wonder
+who will pay the beer tab. Whoever 'wins' the race, loses!
+
+You specify a distance the ponies must run, and a maximum delay before
+the pony will reach the next step. So, the bigger the delay, the bigger
+the distance between multiple ponies can be.
+
+Of course this wouldn't be any fun if we couldn't name the ponies
+ourselves. Here, we simply put all our race ponies in an array
+reference and the Acme::POE::Knee module will take care of the rest.
+
+
+=head1 USING Acme::POE::Knee
+
+Using Acme::POE::Knee is really easy.
+This simple progam would already suffice:
+
+    use strict;
+    use Acme::POE::Knee;
+
+    my $pony = new Acme::POE::Knee;
+    $pony->race();
+    exit;
+
+This will use the defaults of the POE::Knee module, but you can of
+course specify your own arguments, as shown in the synopsis.
+
+
+=head1 The Use of Acme::POE::Knee
+
+Use, yes... Usefull? Probably not. This was written in responce to a
+rather persistant meme on #perl (you know who you are!).
+Basicly, we all wanted ponies.
+Well folks, here it is.
+
+It's source might be interesting to look at for newcomers to POE to see
+how this time slicing works.
+
+
+=head1 Learning more about POE
+
+=over 2
+
+=item The POE Mailing List
+
+POE has a mailing list at perl.org.  You can receive subscription
+information by sending e-mail:
+
+  To: poe-help at perl.org
+  Subject: (anything will do)
+
+  The message body is ignored.
+
+All forms of feedback are welcome.
+
+=item The POE Web Site
+
+POE has a web site where the latest development snapshot, along with
+the Changes file and other stuff may be found: <http://poe.perl.org/>
+
+=item SourceForge
+
+POE's development has moved to SourceForge as an experiment in project
+management.  You can reach POE's project summary page at
+<http://sourceforge.net/projects/poe/>.
+
+=back
+
+=head2 Author
+
+=over 2
+
+=item Jos Boumans
+
+Jos Boumans is <kane_at_cpan.org>.  POE::Knee is his brainchild.
+
+=item Rocco Caputo
+
+Rocco Caputo is <troc+poe at netrus.net>.  POE itself is his creation.
+
+=head2 COPYRIGHT
+
+Copyright (c) 2001, Jos Boumans. All Rights Reserved. This module
+is free software. It may be used, redistributed and/or modified
+under the terms of the Perl Artistic License (see
+http://www.perl.com/perl/misc/Artistic.html)
+
+Except where otherwise noted, POE is Copyright 1998-2001 Rocco Caputo.
+All rights reserved.  POE is free software; you may redistribute it
+and/or modify it under the same terms as Perl itself.
+
+=back
+
+=cut




More information about the Pkg-perl-cvs-commits mailing list