NAME

POE::Session::AttributeBased - POE::Session syntax sweetener

VERSION

Version 0.10

SYNOPSIS

    #!perl

    package Foo;

    use Test::More tests => 7;

    use POE;
    use base 'POE::Session::AttributeBased';

    sub _start : State {
	my $k : KERNEL;
	my $h : HEAP;

	ok( 1, "in _start" );

	$k->yield( tick => 5 );
    }

    sub tick : State {
	my $k     : KERNEL;
	my $count : ARG0;

	ok( 1, "in tick" );
	return 0 unless $count;

	$k->yield( tick => $count - 1 );
	return 1;
    }

    POE::Session->create(
	Foo->inline_states(),
    );

    POE::Kernel->run();
    exit;

ABSTRACT

A simple attribute handler mixin that makes POE state easier to keep track of.

DESCRIPTION

Provides an attribute handler that does some bookkeeping for state handlers. There have been a few of these classes for POE. This is probably the most minimal. It supports only the inline attribute syntax. but that seems sufficient for cranking up a POE session.

FUNCTIONS

State

The state hander attribute. Never called directly.

Offset

POE::Session argument offset handler. This use of the DB module to get extra info from caller might be risky.

OBJECT

SESSION

KERNEL

HEAP

STATE

SENDER

CALLER_FILE

CALLER_LINE

CALLER_STATE

ARG0

ARG1

ARG2

ARG3

ARG4

ARG5

ARG6

ARG7

ARG8

ARG9

inline_states

Returns the list of states in a format that is usable by POE::Session->create. Can also specify what to return as the hash key so that it is useful in packages like POE::Component::Server::TCP where the state list has a different tag.

AUTHOR

Chris Fedde, <cfedde at cpan.org>

BUGS

Please report any bugs or feature requests to bug-poe-attr at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=POE-Session-AttributeBased. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc POE::Session::AttributeBased

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2010 Chris Fedde, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.