class Thrift::MultiplexedProcessor

Public Class Methods

new() click to toggle source
   # File lib/thrift/multiplexed_processor.rb
24 def initialize
25   @actual_processors = {}
26 end

Public Instance Methods

process(iprot, oprot) click to toggle source
   # File lib/thrift/multiplexed_processor.rb
32 def process(iprot, oprot)
33   name, type, seqid = iprot.read_message_begin
34   check_type(type)
35   check_separator(name)
36   service_name, method = name.split(':')
37   processor(service_name).process(StoredMessageProtocol.new(iprot, [method, type, seqid]), oprot)
38 end
register_processor(service_name, processor) click to toggle source
   # File lib/thrift/multiplexed_processor.rb
28 def register_processor(service_name, processor)
29   @actual_processors[service_name] = processor
30 end

Protected Instance Methods

check_separator(name) click to toggle source
   # File lib/thrift/multiplexed_processor.rb
56 def check_separator(name)
57   if name.count(':') < 1
58     raise Thrift::Exception.new("Service name not found in message name: #{name}. Did you forget to use a Thrift::Protocol::MultiplexedProtocol in your client?")
59   end
60 end
check_type(type) click to toggle source
   # File lib/thrift/multiplexed_processor.rb
50 def check_type(type)
51   unless [MessageTypes::CALL, MessageTypes::ONEWAY].include?(type)
52     raise Thrift::Exception.new('This should not have happened!?')
53   end
54 end
processor(service_name) click to toggle source
   # File lib/thrift/multiplexed_processor.rb
42 def processor(service_name)
43   if @actual_processors.has_key?(service_name)
44     @actual_processors[service_name]
45   else
46     raise Thrift::Exception.new("Service name not found: #{service_name}. Did you forget to call #{self.class.name}#register_processor?")
47   end
48 end