From 5a71e04a704ebc4b3e1449e58a6ba78f68ab7b60 Mon Sep 17 00:00:00 2001 From: Alexis Sukrieh Date: Wed, 4 Jul 2012 15:14:10 +0200 Subject: Support for a timeout attribute in the PBC client The timeout option was only supported for the REST client, the PBC role did have a hard-coded timeout set to 30 seconds. This patch allows the caller to change it, by passing the timeout attrbute to the constructor. A test script is provided. --- lib/Net/Riak/Role/PBC.pm | 8 +++++++- t/pbc.t | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 t/pbc.t diff --git a/lib/Net/Riak/Role/PBC.pm b/lib/Net/Riak/Role/PBC.pm index 605f032..bc32e3b 100644 --- a/lib/Net/Riak/Role/PBC.pm +++ b/lib/Net/Riak/Role/PBC.pm @@ -37,6 +37,12 @@ has socket => ( predicate => 'has_socket', ); +has timeout => ( + is => 'ro', + isa => Int, + default => 30, +); + sub is_alive { my $self = shift; return $self->send_message('PingReq'); @@ -56,7 +62,7 @@ sub connect { PeerAddr => $self->host, PeerPort => $self->port, Proto => 'tcp', - Timeout => 30, + Timeout => $self->timeout, ) ); } diff --git a/t/pbc.t b/t/pbc.t new file mode 100644 index 0000000..326ec3b --- /dev/null +++ b/t/pbc.t @@ -0,0 +1,28 @@ +use Net::Riak; +use strict; +use warnings; + +use Test::More; + +my $r = Net::Riak->new( + transport => 'PBC', + host => '10.0.0.40', + port => 8080 + ); + +is $r->client->timeout,30, "timeout defaults to 30"; + +my $r = Net::Riak->new( + transport => 'PBC', + host => '10.0.0.40', + port => 8080, + timeout => 2, + ); + +is $r->client->timeout, 2, "timeout changed"; + + + + + +done_testing; -- cgit v1.2.3