class ThriftHelpers::Server

Public Class Methods

new(connection_string, client_class, options = {}) click to toggle source
# File lib/thrift_client/server.rb, line 7
def initialize(connection_string, client_class, options = {})
  @connection_string = connection_string
  @client_class = client_class
  @options = options

  @cached = @options.has_key?(:cached_connections) ? @options[:cached_connections] : true

  @marked_down_til = nil
end

Public Instance Methods

client() click to toggle source
# File lib/thrift_client/server.rb, line 48
def client
  @client ||= begin
    connect!

    if @options[:multiplexed_protocol].nil?
      @client_class.new(
          @options[:protocol].new(self, *@options[:protocol_extra_params]))
    else
      @client_class.new(
          Thrift::MultiplexedProtocol.new(
              @options[:protocol].new(self, *@options[:protocol_extra_params]),
              @options[:multiplexed_protocol]
          )
      )
    end
  end
end
close(teardown = false) click to toggle source
# File lib/thrift_client/server.rb, line 70
def close(teardown = false)
  if teardown || !@cached
    connection.close if open?
    @client = nil
  end
end
connect!() click to toggle source
# File lib/thrift_client/server.rb, line 40
def connect!
  return if open?

  self.timeout = @options[:connect_timeout]
  connection.connect!
  self.timeout = @options[:timeout]
end
connection() click to toggle source
# File lib/thrift_client/server.rb, line 34
def connection
  @connection ||= Connection::Factory.create(
    @options[:transport], @options[:transport_wrapper],
    @connection_string, @options[:connect_timeout])
end
down?() click to toggle source
# File lib/thrift_client/server.rb, line 26
def down?
  @marked_down_til && @marked_down_til > Time.now
end
mark_down!(til) click to toggle source
# File lib/thrift_client/server.rb, line 17
def mark_down!(til)
  close(true)
  @marked_down_til = Time.now + til
end
open?() click to toggle source
# File lib/thrift_client/server.rb, line 66
def open?
  connection.open?
end
to_s() click to toggle source
# File lib/thrift_client/server.rb, line 30
def to_s
  @connection_string
end
transport() click to toggle source
# File lib/thrift_client/server.rb, line 77
def transport
  connection.transport
end
up?() click to toggle source
# File lib/thrift_client/server.rb, line 22
def up?
  !down?
end