Acme-FSM

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

t/base/state.t
t/base/turn.t
t/base/verify.t
t/process/consume.t
t/process/filter.t
t/process/parse.t
t/process/quadratic.t
t/process/sort.t
t/state/break.t
t/state/continue.t
t/state/start.t
t/state/stop.t
t/state/workload.t
t/TestSuite.pm
SIGNATURE    Added here by Module::Build

SIGNATURE  view on Meta::CPAN

SHA256 d35cca9ff74eea1364fb1348d1b96255ca3bc6904dc3e17b4523cf9b73d91b9b t/base/state.t
SHA256 c502a44a6bfca1c2de96d4bba8ee3004de1faf2f3ab0050d3fa220f2fbebe6af t/base/turn.t
SHA256 ae177fcdf5b30ef544d8a34a3bcb8204e2e8b02a7fb1aa9efb679f075f9ee811 t/base/verify.t
SHA256 ecafb3980eef5acb79aecf81825095606dc3f433f395eb412d49bb9ba9c25ad1 t/process/consume.t
SHA256 399c20399ef3c16ef0cc04ea23e5a2cf07bcafda728d4d9b26606ddc5e00d127 t/process/filter.t
SHA256 66a8db3d2c3fc02cb8388d0f4f1a68bac2cbccdb660c60fa65acf762e85035bd t/process/parse.t
SHA256 1c68a5a518ff018fa6744bcd4bb29a58e4e28df0230a3a8e90d72227ac1a661c t/process/quadratic.t
SHA256 2651bbcee690dce81fd1f688f166a4f5bb958e2f773868c5f68d05617107f8b7 t/process/sort.t
SHA256 fa7bafcbf024421206a487f75b7252e0fc759166791dcdc4f3bbb9c30340e34c t/state/break.t
SHA256 bf1db86c0b26300f088dc8c80ac6f31c00590aace730a666c22a2de93339df4e t/state/continue.t
SHA256 5fbc5917621ba360988e8f6fa0f2e3f660c35074ec2ed34a42520545bb116b45 t/state/start.t
SHA256 ca5302c4dbf8dc1e1476f78922cfbf3b8be9e9ed67095c4b58c776810fc8bf72 t/state/stop.t
SHA256 c9d26ec206b97c1ace954beeaa3ea7a5dff5024db8ed77d2137a753fccf696a0 t/state/workload.t
-----BEGIN PGP SIGNATURE-----

iHUEARYDAB0WIQSnqQurR/WEu+ky+0QSmuK+1R/WLgUCZ65mxgAKCRASmuK+1R/W
LmlfAP948crZNSzaSBqZcZ67TGQsZ8hpOiPUd+Ppm/7iZ6tL9QD/eNLAiSqjIbXK
IMFsdqpMiL/LW/f3idZxsLkL3P1j+gM=
=aNJ3
-----END PGP SIGNATURE-----

lib/FSM.pm  view on Meta::CPAN


=item state record

=item I<{state}>

One record in I<{fst}>.
The record consists of entries (see above).
L<B<process()>|/process()> method description has more.
Should be noted, in most cases "I<{state}>" should be read as
"I<$state> I<{state}>" instead,
but that starts to smell bufallo.

=item B<switch()>

A mandatory callback associated with every I<{state}>.
L<B<process()> method|/process()> and
L<B<query_switch()> method|/query_switch()>
descriptions have more.

=item I<$turn>

lib/FSM.pm  view on Meta::CPAN

Default.
Errors of here-be-dragons type.

=item C<2>

Basic diagnostics for callbacks.

=item C<3>

Basic trace.
Construction, starting and leaving runs.

=item C<4>

Extended diagnostics for callbacks.

=item C<5>

Deep trace.
By the way diagnostics of I<switch> entry resolving.

t/state/start.t  view on Meta::CPAN

# $Id: start.t 484 2013-05-09 20:56:46Z whynot $
# Copyright 2012, 2013 Eric Pozharski <whynot@pozharski.name>
# GNU GPLv3
# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL

use strict;
use warnings;

package main;
use version 0.77; our $VERSION = version->declare( v2.3.3 );

t/state/workload.t  view on Meta::CPAN

our( %st, $stderr, @input );
our @inbase = q|Marriner|;
our %opts   = ( source => \&AFSMTS_shift, diag_level => -t STDOUT ? 10 : 1 );

sub toggle_now ( ) {
    @inbase = $inbase[0] ? ( undef ) x 5 :
  qw| Amelia_Ducat Delta_Magna Stegnos Davros Mawdryn |;
    @input = ( )    }

my %cache =
( tstart => { switch => sub {     1 }, tturn => [ q|workload| ]},
  fstart => { switch => sub {     0 }, fturn => [ q|workload| ]},
  ustart => { switch => sub { undef }, uturn => [ q|workload| ]} );

my @data =
([                               q|no {START}{tturn}{action}|,
  [qw|                                                     |],
  { START     =>
    { switch => sub { 1 }, tturn => [ q|workload|, undef ]},
    workload  => {                   switch => \&AFSMTS_D } },
  [ qr.\Q{workload}(eturn): turn !isa defined .,
                               qr.^die switch .             ]          ],
 [                               q|no {START}{fturn}{action}|,



( run in 0.747 second using v1.01-cache-2.11-cpan-0d8aa00de5b )