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