NAME

POEx::Role::TCPServer - A Moose Role that provides TCPServer behavior

VERSION

version 0.100170

REQUIRES

METHODS

handle_inbound_data($data, WheelID $id) is Event

This required method will be passed the data received, and from which wheel it came.

ATTRIBUTES

socket_factory is: rw, isa: Object, predicate: has_socket_factory, clearer: clear_socket_factory

The POE::Wheel::SocketFactory created in _start is stored here.

wheels traits: ['Hash'], is: rw, isa: HashRef, clearer: clear_wheels

When connections are accepted, a POE::Wheel::ReadWrite object is created and stored in this attribute, keyed by WheelID. Wheels may be accessed via the following provided methods.

filter is: rw, isa: Filter

This stores the filter that is used when constructing wheels. It will be cloned for each connection accepted.

listen_ip is: ro, isa: Str, required

This will be used as the BindAddress to SocketFactory

listen_port is: ro, isa: Int, required

This will be used as the BindPort to SocketFactory

METHODS

after _start(@args) is Event

The _start event is after-advised to do the start up of the SocketFactory.

handle_on_connect(GlobRef $socket, Str $address, Int $port, WheelID $id) is Event

handle_on_connect is the SuccessEvent of the SocketFactory instantiated in _start.

handle_listen_error(Str $action, Int $code, Str $message, WheelID $id) is Event

handle_listen_error is the FailureEvent of the SocketFactory

handle_socket_error(Str $action, Int $code, Str $message, WheelID $id) is Event

handle_socket_error is the ErrorEvent of each POE::Wheel::ReadWrite instantiated.

handle_on_flushed(WheelID $id) is Event

handle_on_flushed is the FlushedEvent of each POE::Wheel::ReadWrite instantiated.

shutdown() is Event

shutdown unequivically terminates the TCPServer by clearing all wheels and aliases, forcing POE to garbage collect the session.

DESCRIPTION

POEx::Role::TCPServer bundles up the lower level SocketFactory/ReadWrite combination of wheels into a simple Moose::Role. It builds upon other POEx modules such as POEx::Role::SessionInstantiation and POEx::Types.

The events for SocketFactory for and for each ReadWrite instantiated are methods that can be advised in any way deemed fit. Advising these methods is actually encouraged and can simplify code for the consumer.

The only method that must be provided by the consuming class is handle_inbound_data.

AUTHOR

Nicholas Perez <nperez@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2010 by Nicholas Perez.

This is free software, licensed under:

The GNU General Public License, Version 3, June 2007