/usr/local/CPAN/mogilefs-server/MogileFS/Connection/Mogstored.pm
package MogileFS::Connection::Mogstored;
use strict;
use IO::Socket::INET;
sub new {
my ($class, $ip, $port) = @_;
return bless {
sock => undef, # undef if not yet connected, else socket to host
ip => $ip,
port => $port,
}, $class;
}
# returns (or connects to & returns) raw socket to mogstored.
sub sock {
my ($self, $timeout) = @_;
return $self->{sock} if $self->{sock};
return $self->{sock} = IO::Socket::INET->new(PeerAddr => $self->{ip},
PeerPort => $self->{port},
Timeout => $timeout);
}
sub sock_if_connected {
my $self = shift;
return $self->{sock};
}
sub mark_dead {
my $self = shift;
$self->{sock} = undef;
}
1;