NAME

XAS::Lib::Session - The base class for all POE Sessions.

SYNOPSIS

my $session = XAS::Lib::Session->new(
    -alias  => 'name',
    -logger => 'logger'
);

DESCRIPTION

This module provides an object based POE session. This object will perform the necessary actions for the lifetime of the session. This includes handling signals. The following signals INT, TERM, QUIT will trigger the 'shutdown' event which invokes the cleanup() method. The HUP signal will invoke the reload() method.

METHODS

initialize($kernel, $session)

This is where the session should do whatever initialization it needs. This initialization may include defining additional events.

$kernel

A handle to the POE kernel.

$session

A handle to the current POE session.

cleanup($kernel, $session)

This method should perform cleanup actions for the session. This is triggered by a "shutdown" event.

$kernel

A handle to the POE kernel.

$session

A handle to the current POE session.

reload($kernel, $session)

This method should perform reload actions for the session. By default it calls $kernel->sig_handled() which terminates further handling of the HUP signal.

$kernel

A handle to the POE kernel.

$session

A handle to the current POE session.

stop($kernel, $session)

This method should perform stop actions for the session. This is triggered by a "_stop" event.

$kernel

A handle to the POE kernel.

$session

A handle to the current POE session.

config($item)

This method will return a value from the configuration items for this object. It is passed one parameter, the name of the config item.

$item

Return the value for this item from the config.

Example:

my $item = $self->config('Item');

log($level, $message)

This method provides a simple logger. It should be overridden.

$level

A log level that is compatiable with your logger.

$message

The message to write in the log.

PUBLIC EVENTS

The following public events are defined for the session.

startup($kernel, $self)

This event should start whatever processing the session will do. It is passed two parameters:

$kernel

A handle to the POE kernel.

$self

A handle to the current self.

shutdown

When you send this event to the session, it will invoke the cleanup() method.

PRIVATE EVENTS

The following events are used internally:

session_init
session_interrupt
session_reload
shutdown

They should only be used with caution.

SEE ALSO

XAS

AUTHOR

Kevin L. Esteb, <kevin@kesteb.us>

COPYRIGHT AND LICENSE

Copyright (C) 2012 by Kevin L. Esteb

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.