NAME
Data::Remember::POE - a brain for Data::Remember linked to the POE session heap
VERSION
version 0.140490
SYNOPSIS
# An absurd POE programming demonstrating how Data::Remember::POE works
use Data::Remember POE => 'Memory';
use POE;
POE::Session->create(
inline_states => {
_start => \&start,
count_to_10 => \&count_to_10,
print_count => \&print_count,
},
heap => brain->new_heap,
);
POE::Kernel->run;
sub start {
my $kernel = $_[KERNEL];
$kernel->yield( 'count_to_10' );
}
sub count_to_10 {
my $kernel = $_[KERNEL];
for my $count ( 1 .. 10 ) {
remember [ count => $count ] = "The count is $count.\n";
$kernel->yield( print_count => $count );
}
}
sub print_count {
my ($kernel, $count) = @_[KERNEL,ARG0];
my $message = recall [ count => $count ];
print $message;
}
DESCRIPTION
Normally, when using Data::Remember, the brain used is linked to the package from which the various functions are called. By using Data::Remember::POE to store your brain, the calls to remember
, recall
, and forget
will instead work according to the current POE session.
This means that it's possible to define two POE sessions that use Data::Remember from the same package, but each will use a different brain.
METHODS
new CONFIG
Creates a new object and tells the brain to use CONFIG
as the default heap configuration.
new_heap [ CONFIG ]
Creates a new brain object to be stored in a sessions heap established when "create" in POE::Session is called. This new heap will be created according to the configuration from when Data::Remember was used. For example,
use Data::Remember POE => 'Memory';
This declaration would case new_heap
to initialize a new brain using Data::Remember::Memory.
You may also specify a CONFIG
argument, which will override the configuration set when Data::Remember was used. For example,
POE::Session->create(
inline_states => { ... },
heap => brain->new_heap( YAML => file => 'brain.yml' ),
);
This overrides whatever options were set during the use and uses Data::Remember::YAML instead.
remember QUE, FACT
Stores FACT
into QUE
for the brain in the current POE session.
recall QUE
Fetches the fact that has been stored in QUE
for the brain in the current POE session heap.
forget QUE
Deletes any fact that has been stored in QUE
for the brain in the current POE session heap.
brain
Returns the brain stored in the current session heap, in case you need to call any brain methods there.
SEE ALSO
AUTHOR
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Qubling Software LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.