| # | 
 | # Autogenerated by Thrift | 
 | # | 
 | # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING | 
 | # | 
 |  | 
 | require 'thrift' | 
 | require 'thrift/protocol' | 
 | require File.dirname(__FILE__) + '/ThriftSpec_types' | 
 |  | 
 |     module SpecNamespace | 
 |       module NonblockingService | 
 |         class Client | 
 |           include Thrift::Client | 
 |  | 
 |           def greeting(english) | 
 |             send_greeting(english) | 
 |             return recv_greeting() | 
 |           end | 
 |  | 
 |           def send_greeting(english) | 
 |             send_message('greeting', Greeting_args, :english => english) | 
 |           end | 
 |  | 
 |           def recv_greeting() | 
 |             result = receive_message(Greeting_result) | 
 |             return result.success unless result.success.nil? | 
 |             raise Thrift::ApplicationException.new(Thrift::ApplicationException::MISSING_RESULT, 'greeting failed: unknown result') | 
 |           end | 
 |  | 
 |           def block() | 
 |             send_block() | 
 |             return recv_block() | 
 |           end | 
 |  | 
 |           def send_block() | 
 |             send_message('block', Block_args) | 
 |           end | 
 |  | 
 |           def recv_block() | 
 |             result = receive_message(Block_result) | 
 |             return result.success unless result.success.nil? | 
 |             raise Thrift::ApplicationException.new(Thrift::ApplicationException::MISSING_RESULT, 'block failed: unknown result') | 
 |           end | 
 |  | 
 |           def unblock(n) | 
 |             send_unblock(n) | 
 |           end | 
 |  | 
 |           def send_unblock(n) | 
 |             send_message('unblock', Unblock_args, :n => n) | 
 |           end | 
 |           def shutdown() | 
 |             send_shutdown() | 
 |           end | 
 |  | 
 |           def send_shutdown() | 
 |             send_message('shutdown', Shutdown_args) | 
 |           end | 
 |           def sleep(seconds) | 
 |             send_sleep(seconds) | 
 |             recv_sleep() | 
 |           end | 
 |  | 
 |           def send_sleep(seconds) | 
 |             send_message('sleep', Sleep_args, :seconds => seconds) | 
 |           end | 
 |  | 
 |           def recv_sleep() | 
 |             result = receive_message(Sleep_result) | 
 |             return | 
 |           end | 
 |  | 
 |         end | 
 |  | 
 |         class Processor | 
 |           include Thrift::Processor | 
 |  | 
 |           def process_greeting(seqid, iprot, oprot) | 
 |             args = read_args(iprot, Greeting_args) | 
 |             result = Greeting_result.new() | 
 |             result.success = @handler.greeting(args.english) | 
 |             write_result(result, oprot, 'greeting', seqid) | 
 |           end | 
 |  | 
 |           def process_block(seqid, iprot, oprot) | 
 |             args = read_args(iprot, Block_args) | 
 |             result = Block_result.new() | 
 |             result.success = @handler.block() | 
 |             write_result(result, oprot, 'block', seqid) | 
 |           end | 
 |  | 
 |           def process_unblock(seqid, iprot, oprot) | 
 |             args = read_args(iprot, Unblock_args) | 
 |             @handler.unblock(args.n) | 
 |             return | 
 |           end | 
 |  | 
 |           def process_shutdown(seqid, iprot, oprot) | 
 |             args = read_args(iprot, Shutdown_args) | 
 |             @handler.shutdown() | 
 |             return | 
 |           end | 
 |  | 
 |           def process_sleep(seqid, iprot, oprot) | 
 |             args = read_args(iprot, Sleep_args) | 
 |             result = Sleep_result.new() | 
 |             @handler.sleep(args.seconds) | 
 |             write_result(result, oprot, 'sleep', seqid) | 
 |           end | 
 |  | 
 |         end | 
 |  | 
 |         # HELPER FUNCTIONS AND STRUCTURES | 
 |  | 
 |         class Greeting_args | 
 |           include Thrift::Struct | 
 |           ENGLISH = 1 | 
 |  | 
 |           Thrift::Struct.field_accessor self, :english | 
 |           FIELDS = { | 
 |             ENGLISH => {:type => Thrift::Types::BOOL, :name => 'english'} | 
 |           } | 
 |         end | 
 |  | 
 |         class Greeting_result | 
 |           include Thrift::Struct | 
 |           SUCCESS = 0 | 
 |  | 
 |           Thrift::Struct.field_accessor self, :success | 
 |           FIELDS = { | 
 |             SUCCESS => {:type => Thrift::Types::STRUCT, :name => 'success', :class => Hello} | 
 |           } | 
 |         end | 
 |  | 
 |         class Block_args | 
 |           include Thrift::Struct | 
 |  | 
 |           FIELDS = { | 
 |  | 
 |           } | 
 |         end | 
 |  | 
 |         class Block_result | 
 |           include Thrift::Struct | 
 |           SUCCESS = 0 | 
 |  | 
 |           Thrift::Struct.field_accessor self, :success | 
 |           FIELDS = { | 
 |             SUCCESS => {:type => Thrift::Types::BOOL, :name => 'success'} | 
 |           } | 
 |         end | 
 |  | 
 |         class Unblock_args | 
 |           include Thrift::Struct | 
 |           N = 1 | 
 |  | 
 |           Thrift::Struct.field_accessor self, :n | 
 |           FIELDS = { | 
 |             N => {:type => Thrift::Types::I32, :name => 'n'} | 
 |           } | 
 |         end | 
 |  | 
 |         class Unblock_result | 
 |           include Thrift::Struct | 
 |  | 
 |           FIELDS = { | 
 |  | 
 |           } | 
 |         end | 
 |  | 
 |         class Shutdown_args | 
 |           include Thrift::Struct | 
 |  | 
 |           FIELDS = { | 
 |  | 
 |           } | 
 |         end | 
 |  | 
 |         class Shutdown_result | 
 |           include Thrift::Struct | 
 |  | 
 |           FIELDS = { | 
 |  | 
 |           } | 
 |         end | 
 |  | 
 |         class Sleep_args | 
 |           include Thrift::Struct | 
 |           SECONDS = 1 | 
 |  | 
 |           Thrift::Struct.field_accessor self, :seconds | 
 |           FIELDS = { | 
 |             SECONDS => {:type => Thrift::Types::DOUBLE, :name => 'seconds'} | 
 |           } | 
 |         end | 
 |  | 
 |         class Sleep_result | 
 |           include Thrift::Struct | 
 |  | 
 |           FIELDS = { | 
 |  | 
 |           } | 
 |         end | 
 |  | 
 |       end | 
 |  | 
 |     end |