The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Remember::POE a brain for Data::Remember linked to the session heap

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

Data::Remember

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2007 Boomer Consulting, Inc. All Rights Reserved.

This program is free software and may be modified and distributed under the same terms as Perl itself.