Class: Fyrehose::TCPClient

Inherits:
AbstractClient show all
Defined in:
lib/fyrehose/tcp_client.rb

Constant Summary

Constants inherited from AbstractClient

AbstractClient::TIMEOUT

Instance Method Summary collapse

Methods inherited from AbstractClient

#deliver, #initialize

Constructor Details

This class inherits a constructor from Fyrehose::AbstractClient

Instance Method Details

#parse_response(str) ⇒ Object



14
15
16
17
18
19
# File 'lib/fyrehose/tcp_client.rb', line 14

def parse_response(str)
  raise Fyrehose::ConnectionError.new unless str
  m = str.match(/#[^ ]+ \$([0-9]+)\n/)
  raise Fyrehose::ProtocolError.new unless m
  m[1].to_i
end

#send_data(data) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/fyrehose/tcp_client.rb', line 3

def send_data(data)
  Timeout::timeout(@timeout) do
    @sock = TCPSocket.new(@host, @port) unless @sock
    @sock.send(data, 0)
    parse_response(@sock.gets)
  end
rescue Exception => e
  @sock = nil
  raise e
end