NAME

XAS::Lib::Net::Server - A basic network server for the XAS Environment

SYNOPSIS

my $server = XAS::Lib::Net::Server->new(
    -port             => 9505,
    -address          => 'localhost',
    -filter           => POE::Filter::Line->new(),
    -alias            => 'server',
    -inactivity_timer => 600
}

DESCRIPTION

This module implements a simple text orientated nework protocol. All "packets" will have an explict "\012\015" appended. These packets may be formated strings, such as JSON. The server runs as a POE session.

METHODS

new

This initializes the module and starts listening for requests. There are five parameters that can be passed. They are the following:

-alias

The name of the POE session.

-port

The IP port to listen on.

-address

The address to bind too.

-inactivty_timer

Sets an inactivity timer on clients. When it is surpassed, the method reaper() is called with the POE wheel id. What reaper() does is application specific. The default is 600 seconds.

-filter

An optional filter to use, defaults to POE::Filter::Line

initialize($kernel)

This method is for specific initialization of the module. By default it does nothing.

$kernel

A handle for the POE kernel

reload($kernel, $session)

This method runs when a HUP signal is recieved. By default if does nothing.

$kernel

A handle for the POE kernel.

$session

A handle to the current POE session.

shutdown($kernel, $session)

This method starts the "shutdown" process for the POE session. A "shutdown" can be initiated by an INT, TERM or QUIT signal. By default it does nothing.

$kernel

A handle to the POE kernel.

$session

A handle to the current POE session.

reaper($wheel)

Called when the inactivity timer is triggered.

$wheel

The POE wheel that triggered the timer.

process($packet, $wheel)

This method does the processing for any packets that are sent over the socket. By default, it just returns the packet.

$packet

The packet that was sent over the socket.

$wheel

The POE wheel that handled the packet.

log($level, $message)

This will write log messages. The default this is just a dump to stderr.

$level

The log level, this is usually INFO, WARN, ERROR, FATAL or DEBUG. These are the levels that are understood by the XAS logger.

$message

The message to log.

ACCESSORS

peerport($wheel)

This returns the current port for that wheel.

$wheel

The POE wheel to use.

host($wheel)

This returns the current hostname for that wheel.

client($wheel)

This returns the current client for that wheel.

$wheel

The POE wheel to use.

SEE ALSO

POE::Filter::Line

XAS::Base
XAS::Class
XAS::Constants
XAS::Exception
XAS::System
XAS::Utils

XAS::Apps::Base::Alerts
XAS::Apps::Base::Collector
XAS::Apps::Base::ExtractData
XAS::Apps::Base::ExtractGlobals
XAS::Apps::Base::RemoveData
XAS::Apps::Database::Schema
XAS::Apps::Templates::Daemon
XAS::Apps::Templates::Generic
XAS::Apps::Test::Echo::Client
XAS::Apps::Test::Echo::Server
XAS::Apps::Test::RPC::Client
XAS::Apps::Test::RPC::Methods
XAS::Apps::Test::RPC::Server

XAS::Collector::Alert
XAS::Collector::Base
XAS::Collector::Connector
XAS::Collector::Factory

XAS::Lib::App
XAS::Lib::App::Daemon
XAS::Lib::App::Daemon::POE
XAS::Lib::Connector
XAS::Lib::Counter
XAS::Lib::Daemon::Logger
XAS::Lib::Daemon::Logging
XAS::Lib::Gearman::Admin
XAS::Lib::Gearman::Admin::Status
XAS::Lib::Gearman::Admin::Worker
XAS::Lib::Gearman::Client
XAS::Lib::Gearman::Client::Status
XAS::Lib::Gearman::Worker
XAS::Lib::Net::Client
XAS::LIb::Net::Server
XAS::Lib::RPC::JSON::Client
XAS::Lib::RPC::JSON::Server
XAS::Lib::Session
XAS::Lib::Spool

XAS::Model::Database
XAS::Model::Database::Alert
XAS::Model::Database::Counter
XAS::Model::DBM

XAS::Monitor::Base
XAS::Monitor::Database
XAS::Monitor::Database::Alert

XAS::Scheduler::Base

XAS::System::Alert
XAS::System::Email
XAS::System::Environment
XAS::System::Logger

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