class Stark::Processor
Public Class Methods
new(handler)
click to toggle source
# File lib/stark/processor.rb, line 7 def initialize(handler) @handler = handler end
Public Instance Methods
process(iprot, oprot)
click to toggle source
# File lib/stark/processor.rb, line 11 def process(iprot, oprot) name, type, seqid = iprot.read_message_begin fail unless type == Thrift::MessageTypes::CALL x = nil if respond_to?("process_#{name}") send("process_#{name}", seqid, iprot, oprot) true else iprot.skip(::Thrift::Types::STRUCT) iprot.read_message_end x = ::Thrift::ApplicationException.new(Thrift::ApplicationException::UNKNOWN_METHOD, 'Unknown function '+name) false end rescue ::Exception => e Stark.logger.error "#{self.class.name}#process_#{name}: #{e.message}\n " + e.backtrace.join("\n ") x = Thrift::ApplicationException.new(Thrift::ApplicationException::INTERNAL_ERROR, e.message) false ensure if x oprot.write_message_begin(name, ::Thrift::MessageTypes::EXCEPTION, seqid) x.write(oprot) oprot.write_message_end oprot.trans.flush end end