package XAS::Lib::App::Daemon::POE;

our $VERSION = '0.01';

use POE;

use XAS::Class
  version => $VERSION,
  base    => 'XAS::Lib::App::Daemon',
;

# ----------------------------------------------------------------------
# Public Methods
# ----------------------------------------------------------------------

sub define_daemon {
    my $self = shift;

    # become a daemon...

    $self->SUPER::define_daemon();
    $poe_kernel->has_forked() if ($self->daemon);

}

sub define_signals {
    my $self = shift;

}

sub signal_handler {
    my $signal = shift;

}

# ----------------------------------------------------------------------
# Private Methods
# ----------------------------------------------------------------------

1;

__END__

=head1 NAME

XAS::Lib::App::Daemon::POE - The base class to write daemons that use POE within the XAS environment

=head1 SYNOPSIS

 use XAS::Lib::App::Daemon::POE;

 my $app = XAS::Lib::App::Daemon::POE->new();

 $app->run();

=head1 DESCRIPTION

This module defines a base class for writing daemons with POE. It inherits from
L<XAS::Lib::App::Daemon|XAS::Lib::App::Daemon>. Please see that module for
additional documentation.

=head1 METHODS

=head2 define_signals

This method sets up basic signal handling. Signal handling is done by POE.

=head2 signal_handler($signal)

This method is a default signal handler. Signal processing is done by POE.

=over 4

=item B<$signal>

The signal that was captured.

=back

=head2 define_daemon

This method will cause the proces to become a daemon. It also notifes POE
that the process has forked.

=head1 SEE ALSO

L<XAS|XAS>

=head1 AUTHOR

Kevin L. Esteb, E<lt>kevin@kesteb.usE<gt>

=head1 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.8 or,
at your option, any later version of Perl 5 you may have available.

=cut
