class Thrift::MultiplexedProcessor
Public Class Methods
new()
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 5 def initialize @actual_processors = {} end
Public Instance Methods
process(iprot, oprot)
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 13 def process(iprot, oprot) name, type, seqid = iprot.read_message_begin check_type(type) check_separator(name) service_name, method = name.split(':') processor(service_name).process(StoredMessageProtocol.new(iprot, [method, type, seqid]), oprot) end
register_processor(service_name, processor)
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 9 def register_processor(service_name, processor) @actual_processors[service_name] = processor end
Protected Instance Methods
check_separator(name)
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 37 def check_separator(name) if name.count(':') < 1 raise Thrift::Exception.new("Service name not found in message name: #{name}. Did you forget to use a Thrift::Protocol::MultiplexedProtocol in your client?") end end
check_type(type)
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 31 def check_type(type) unless [MessageTypes::CALL, MessageTypes::ONEWAY].include?(type) raise Thrift::Exception.new('This should not have happened!?') end end
processor(service_name)
click to toggle source
# File lib/thrift/multiplexed_processor.rb, line 23 def processor(service_name) if @actual_processors.has_key?(service_name) @actual_processors[service_name] else raise Thrift::Exception.new("Service name not found: #{service_name}. Did you forget to call #{self.class.name}#register_processor?") end end