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;