Cluster-Init
view release on metacpan or search on metacpan
lib/Cluster/Init/DFA/Daemon.pm view on Meta::CPAN
package Cluster::Init::DFA::Daemon;
#
# AUTOMATICALLY GENERATED by ./dot2dfa
# Sun Jul 20 00:38:34 2003
# DO NOT EDIT
#
# Original .dot file contents included below __END__.
#
use strict;
use warnings;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(DFA_ACTIONS ACCEPT CLTAB HALT HALTING LISTEN READLINE START TELLING _ANY_ TERM IDLE CLTAB_OK CLTAB_NOK SOCKETIO SOCKET_ERROR WRITETIME CLIENTIO TIMEOUT CMDERR TELL SHUTDOWN GROUP_NOK GROUPTOLD HALTED HALTTIME);
our %EXPORT_TAGS = (constants => [qw(ACCEPT CLTAB HALT HALTING LISTEN READLINE START TELLING _ANY_ TERM IDLE CLTAB_OK CLTAB_NOK SOCKETIO SOCKET_ERROR WRITETIME CLIENTIO TIMEOUT CMDERR TELL SHUTDOWN GROUP_NOK GROUPTOLD HALTED HALTTIME)]);
my $debug = $ENV{DEBUG};
# Actions
# (you need to implement these in caller)
#
# Action => Value, # Events it can generate
#
use constant DFA_ACTIONS => (
BYE => '$self->bye(@arg)', # HALTTIME
GETCMD => '$self->getcmd(@arg)', # CMDERR SHUTDOWN TELL
# TIMEOUT
HALTALL => '$self->haltall(@arg)', # HALTED
PUTRES => '$self->putres(@arg)', # HALTTIME SOCKET_ERROR
# WRITETIME
READ_CLTAB => '$self->read_cltab(@arg)', # CLTAB_NOK CLTAB_OK
# IDLE
START_LISTENER => '$self->start_listener(@arg)', # SOCKET_ERROR
# WRITETIME
TELLGROUP => '$self->tellgroup(@arg)', # GROUPTOLD GROUP_NOK
# SHUTDOWN
WATCH_CLIENT => '$self->watch_client(@arg)', # TIMEOUT
WRITESTAT => '$self->writestat(@arg)', # SOCKET_ERROR
# WRITETIME
);
my %const2act = DFA_ACTIONS;
# States
# use constant State => Value; # Events it can handle
#
use constant ACCEPT => 'ACCEPT'; # CLIENTIO TIMEOUT
use constant CLTAB => 'CLTAB'; # CLTAB_NOK CLTAB_OK
use constant HALT => 'HALT'; # HALTTIME
use constant HALTING => 'HALTING'; # HALTED
use constant LISTEN => 'LISTEN'; # SOCKETIO SOCKET_ERROR
# WRITETIME
use constant READLINE => 'READLINE'; # CMDERR SHUTDOWN TELL
# TIMEOUT
use constant START => 'START'; # CLTAB_NOK CLTAB_OK IDLE
use constant TELLING => 'TELLING'; # GROUPTOLD GROUP_NOK
# SHUTDOWN
use constant _ANY_ => '_ANY_'; # TERM
# Events
# use constant Event => Value; # States it can be accepted in
#
use constant TERM => 'TERM'; # _ANY_
use constant IDLE => 'IDLE'; # START
use constant CLTAB_OK => 'CLTAB_OK'; # CLTAB START
use constant CLTAB_NOK => 'CLTAB_NOK'; # CLTAB START
use constant SOCKETIO => 'SOCKETIO'; # LISTEN
use constant SOCKET_ERROR => 'SOCKET_ERROR'; # LISTEN
use constant WRITETIME => 'WRITETIME'; # LISTEN
use constant CLIENTIO => 'CLIENTIO'; # ACCEPT
use constant TIMEOUT => 'TIMEOUT'; # ACCEPT READLINE
use constant CMDERR => 'CMDERR'; # READLINE
use constant TELL => 'TELL'; # READLINE
use constant SHUTDOWN => 'SHUTDOWN'; # READLINE TELLING
use constant GROUP_NOK => 'GROUP_NOK'; # TELLING
use constant GROUPTOLD => 'GROUPTOLD'; # TELLING
use constant HALTED => 'HALTED'; # HALTING
use constant HALTTIME => 'HALTTIME'; # HALT
use constant GRAPH => {
ACCEPT => {
CLIENTIO => { action => "GETCMD", newstate => "READLINE" },
TIMEOUT => { action => "PUTRES", newstate => "LISTEN" },
},
CLTAB => {
CLTAB_NOK => { action => "PUTRES", newstate => "LISTEN" },
CLTAB_OK => { action => "TELLGROUP", newstate => "TELLING" },
},
HALT => { HALTTIME => { action => "BYE", newstate => "HALT" } },
HALTING => { HALTED => { action => "PUTRES", newstate => "HALT" } },
LISTEN => {
SOCKETIO => { action => "WATCH_CLIENT", newstate => "ACCEPT" },
SOCKET_ERROR => { action => "", newstate => "HALT" },
WRITETIME => { action => "WRITESTAT", newstate => "LISTEN" },
},
( run in 1.967 second using v1.01-cache-2.11-cpan-39bf76dae61 )