module Envoy::Client::Channel

Public Class Methods

new(id, client) click to toggle source
Calls superclass method
# File lib/envoy/client/channel.rb, line 8
def initialize id, client
  @id, @client = id, client
  @buffer = ""
  super()
end

Public Instance Methods

connection_completed() click to toggle source
# File lib/envoy/client/channel.rb, line 14
def connection_completed
  @client.log TRACE, "connected to upstream service for stream #{@id}"
  @tried_starting = nil
  send_data @buffer, true
  @buffer = nil
end
receive_data(data) click to toggle source
# File lib/envoy/client/channel.rb, line 29
def receive_data data
  @client.log TRACE, "#{data.length} bytes of data send on stream #{@id}"
  @client.send_object :stream, @id, data
end
reconnect() click to toggle source
Calls superclass method
# File lib/envoy/client/channel.rb, line 34
def reconnect
  @client.log TRACE, "reconnecting to upstream service for stream #{@id}"
  super @client.options[:local_host], @client.options[:local_port]
end
send_data(data, force = false) click to toggle source
Calls superclass method
# File lib/envoy/client/channel.rb, line 21
def send_data data, force = false
  if !@buffer or force
    super data
  else
    @buffer << data
  end
end
unbind(e) click to toggle source
# File lib/envoy/client/channel.rb, line 39
def unbind e
  if e == Errno::ECONNREFUSED
    @client.log ERROR, "couldn't connect to upstream service for stream #{@id}"
    @client.send_object :close, @id
  elsif e
    @client.log ERROR, e.inspect
    @client.send_object :close, @id
  else
    @client.log DEBUG, "upstream service closed stream #{@id}"
    @client.send_object :close, @id
  end
end