NAME
POEx::Role::TCPServer - A Moose Role that provides TCPServer behavior
VERSION
version 1.102740
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.
PUBLIC_ATTRIBUTES
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
PROTECTED_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.
{
'get_wheel' => 'get',
'set_wheel' => 'set',
'delete_wheel' => 'delete',
'count_wheels' => 'count',
'has_wheel' => 'exists',
}
filter
is: rw, isa: Filter
This stores the filter that is used when constructing wheels. It will be cloned for each connection accepted. Defaults to a instance of POE::Filter::Line.
input_filter
is: rw, isa: Filter
If different filters are needed for input and output, supply this attribute with the input filter. It will override what is in "filter"
output_filter
is: rw, isa: Filter
If different filters are needed for input and output, supply this attribute with the output filter. It will override what is in "filter"
PUBLIC_METHODS
shutdown()
is Event
shutdown unequivically terminates the TCPServer by clearing all wheels and aliases, forcing POE to garbage collect the session.
PROTECTED_METHODS
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.
PRIVATE_METHODS
after _start
(@args) is Event
The _start event is after-advised to do the start up of the SocketFactory.
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.
AUTHOR
Nicholas Perez <nperez@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Nicholas Perez.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.