# # Autogenerated by Thrift Compiler (2.4.0-upfluence) # # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING # require 'thrift' require 'benchmark_types' module ThriftBenchmark module BenchmarkService SERVICE = 'BenchmarkService'.freeze NAMESPACE = ''.freeze class Client def initialize(client) @client = ::Thrift.build_client(client) end def self.from_provider(provider) Client.new(provider.build(NAMESPACE, SERVICE)) end def fibonacci(n) result = @client.call_binary( 'fibonacci', Fibonacci_args.new(n: n), Fibonacci_result ) return result.success unless result.success.nil? raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'fibonacci failed: unknown result') result end end class Processor include ::Thrift::Processor def self.from_provider(handler, provider) provider.build(NAMESPACE, SERVICE, Processor, handler) end def process_fibonacci(seqid, iprot, oprot) args = read_args(iprot, Fibonacci_args) result = @middleware.handle_binary('fibonacci', args) do |args| result = Fibonacci_result.new() result.success = @handler.fibonacci(args.n) result end write_result(result, oprot, 'fibonacci', seqid) end end # HELPER FUNCTIONS AND STRUCTURES class Fibonacci_args include ::Thrift::Struct, ::Thrift::Struct_Union NAME = 'fibonacci_args'.freeze NAMESPACE = ''.freeze THRIFT_FIELD_INDEX_N = 1 FIELDS = { THRIFT_FIELD_INDEX_N => {type: ::Thrift::Types::BYTE, name: 'n'} } def struct_fields; FIELDS; end def validate end ::Thrift::Struct.generate_accessors self ::Thrift.register_struct_type self end class Fibonacci_result include ::Thrift::Struct, ::Thrift::Struct_Union NAME = 'fibonacci_result'.freeze NAMESPACE = ''.freeze THRIFT_FIELD_INDEX_SUCCESS = 0 FIELDS = { THRIFT_FIELD_INDEX_SUCCESS => {type: ::Thrift::Types::I32, name: 'success'} } def struct_fields; FIELDS; end def validate end ::Thrift::Struct.generate_accessors self ::Thrift.register_struct_type self end ::Thrift.register_service_type(self) end end