Class: Thrift::AMQP::ServerTransport

Inherits:
BaseServerTransport
  • Object
show all
Defined in:
lib/thrift_amqp/server_transport.rb

Overview

Server transport for using oneway thrift over an AMQP-queue.

Example:

class MyAwesomeHandler
  def battleCry(message)
    puts messages
  end
end

handler = MyAwesomeHandler.new()
processor = AwesomeService::Processor.new(handler)

# Connecting to the exchange called 'battle_cry'. This must match the
# clients setting.    
server_transport = Thrift::AMQP::ServerTransport.new('battle_cry')

server = Thrift::SimpleServer.new(processor, transport)

server.serve    # never returns

Instance Method Summary collapse

Constructor Details

#initialize(exchange_name, headers = {}) ⇒ ServerTransport

Initializes a connection to the AMQP queue. If you provide a headers argument, only messages that match ALL headers will be accepted.

Example:

Thrift::AMQP::ServerTransport.new('queue', :version => 1)
# Will only match messages that have 'version' == '1'


33
34
35
36
# File 'lib/thrift_amqp/server_transport.rb', line 33

def initialize(exchange_name, headers={})
  @exchange_name = exchange_name
  @header_filter = transform_hash_to_string(headers)
end

Instance Method Details

#acceptObject



43
44
45
# File 'lib/thrift_amqp/server_transport.rb', line 43

def accept
  @transport
end

#listenObject

Part of the server



39
40
41
# File 'lib/thrift_amqp/server_transport.rb', line 39

def listen
  @transport = Thrift::AMQP::Transport.connect(@exchange_name)
end