[SCM] libmessage-passing-perl Debian packaging branch, master, updated. debian/0.111-3-14-g44f6e88
Tomas Doran
bobtfish at bobtfish.net
Mon May 6 11:57:17 UTC 2013
The following commit has been merged in the master branch:
commit f0ee3610960f69d910fbbd358e995ab4d2a83c08
Author: Tomas Doran <bobtfish at bobtfish.net>
Date: Mon Jun 11 13:59:09 2012 -0400
Use the error chain handler in connection manager
diff --git a/lib/Message/Passing/Role/ConnectionManager.pm b/lib/Message/Passing/Role/ConnectionManager.pm
index e2bbd67..11be2ed 100644
--- a/lib/Message/Passing/Role/ConnectionManager.pm
+++ b/lib/Message/Passing/Role/ConnectionManager.pm
@@ -10,7 +10,10 @@ sub BUILD {
$self->connection;
}
-with 'Message::Passing::Role::HasTimeoutAndReconnectAfter';
+with qw/
+ Message::Passing::Role::HasTimeoutAndReconnectAfter
+ Message::Passing::Role::HasErrorChain
+/;
has _timeout_timer => (
is => 'rw',
@@ -43,6 +46,7 @@ sub _build_timeout_timer {
AnyEvent->timer(
after => $self->timeout,
cb => sub {
+ $self->error->consume("Connection timed out to ...");
$self->_timeout_timer(undef);
$self->_set_connected(0); # Use public API, causing reconnect timer to be built
},
@@ -55,6 +59,7 @@ sub _build_reconnect_timer {
AnyEvent->timer(
after => $self->reconnect_after,
cb => sub {
+ $self->error->consume("Reconnecting to ...");
$self->_timeout_timer(undef);
$self->connection; # Just rebuild the connection object
},
@@ -100,7 +105,10 @@ after _set_connected => sub {
$sub->$method($self->connection) if $sub->can($method);
}
$self->_timeout_timer(undef) if $connected;
- $self->_clear_connection unless $connected;
+ if (!$connected && $self->_has_connection) {
+ $self->error->consume("Connection disconnected to ...");
+ $self->_clear_connection;
+ }
};
1;
diff --git a/lib/Message/Passing/Role/HasAConnection.pm b/lib/Message/Passing/Role/HasAConnection.pm
index cdae747..2e47490 100644
--- a/lib/Message/Passing/Role/HasAConnection.pm
+++ b/lib/Message/Passing/Role/HasAConnection.pm
@@ -3,6 +3,11 @@ use Moose::Role;
use Moose::Util::TypeConstraints;
use namespace::autoclean;
+with qw/
+ Message::Passing::Role::HasTimeoutAndReconnectAfter
+ Message::Passing::Role::HasErrorChain
+/;
+
# requires qw/ _connection_manager_attributes _connection_manager_class /;
requires 'connected';
@@ -18,14 +23,12 @@ sub _build_connection_manager {
confess "Cannot auto-build this connection manager"
unless $self->can('_connection_manager_attributes')
&& $self->can('_connection_manager_class');
- my %attrs = map { $_ => $self->$_ } (@{ $self->_connection_manager_attributes }, qw/timeout reconnect_after/);
+ my %attrs = map { $_ => $self->$_ } (@{ $self->_connection_manager_attributes }, qw/timeout reconnect_after error/);
my $class = $self->_connection_manager_class;
Class::MOP::load_class($class);
$class->new(%attrs);
}
-with 'Message::Passing::Role::HasTimeoutAndReconnectAfter';
-
sub BUILD {}
after BUILD => sub {
my $self = shift;
--
libmessage-passing-perl Debian packaging
More information about the Pkg-perl-cvs-commits
mailing list