NAME

MouseX::POE::Meta::Trait::Object - The base class role for MouseX::POE

VERSION

version 0.216

SYNOPSIS

package Counter;
use MouseX::Poe;

has name => (
    isa     => 'Str',
    is      => 'rw',
    default => sub { 'Foo ' },
);

has count => (
    isa     => 'Int',
    is      => 'rw',
    lazy    => 1,
    default => sub { 0 },
);

sub START {
    my ($self) = @_;
    $self->yield('increment');
}

sub increment {
    my ($self) = @_;
    $self->count( $self->count + 1 );
    $self->yield('increment') unless $self->count > 3;
}

no MouseX::Poe;

DESCRIPTION

MouseX::POE::Meta::TraitObject is a role that is applied to the object base classe (usually Mouse::Object) that implements a POE::Session.

METHODS

get_session_id

Get the internal POE Session ID, this is useful to hand to other POE aware functions.

yield

call

delay

alarm

alarm_add

delay_add

alarm_set

alarm_adjust

alarm_remove

alarm_remove_all

delay_set

delay_adjust

A cheap alias for the same POE::Kernel function which will gurantee posting to the object's session.

STARTALL

Along similar lines to Mouse's BUILDALL method which calls all the BUILD methods, this function will call all the START methods in your inheritance hierarchy automatically when POE first runs your session. (This corresponds to the _start event from POE.)

STOPALL

Along similar lines to STARTALL, but for STOP instead.

START

STOP

DEFAULT

CHILD

PARENT

__PACKAGE__->meta->add_method( _default => __PACKAGE__->meta->get_method('DEFAULT') ) if __PACKAGE__->meta->has_method('DEFAULT');

__PACKAGE__->meta->add_method( _child => __PACKAGE__->meta->get_method('CHILD') ) if __PACKAGE__->meta->has_method('CHILD');

__PACKAGE__->meta->add_method( _parent => __PACKAGE__->meta->get_method('PARENT') ) if __PACKAGE__->meta->has_method('PARENT');

DEFAULT METHODS

PREDEFINED EVENTS

AUTHORS

  • Chris Prather <chris@prather.org>

  • Ash Berlin <ash@cpan.org>

  • Chris Williams <chris@bingosnet.co.uk>

  • Yuval (nothingmuch) Kogman

  • Torsten Raudssus <torsten@raudssus.de> http://www.raudssus.de/

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Chris Prather, Ash Berlin, Chris Williams, Yuval Kogman, Torsten Raudssus.

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