class Google::Protobuf::ServiceDescriptor
Attributes
Public Class Methods
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 36 def from_native(service_def, _ = nil) return nil if service_def.nil? or service_def.null? file_def = Google::Protobuf::FFI.file_def_by_raw_service_def(service_def) descriptor_from_file_def(file_def, service_def) end
@param service_def
[::FFI::Pointer] ServiceDef pointer to be wrapped @param _ [Object] Unused
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 43 def self.new(*arguments, &block) raise "Descriptor objects may not be created from Ruby." end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 91 def initialize(service_def, descriptor_pool) @service_def = service_def @descriptor_pool = descriptor_pool end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 96 def self.private_constructor(service_def, descriptor_pool) instance = allocate instance.send(:initialize, service_def, descriptor_pool) instance end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 26 def to_native(value, _) service_def_ptr = value.nil? ? nil : value.instance_variable_get(:@service_def) return ::FFI::Pointer::NULL if service_def_ptr.nil? raise "Underlying service_def was null!" if service_def_ptr.null? service_def_ptr end
@param value [ServiceDescriptor] ServiceDescriptor
to convert to an FFI
native type @param _ [Object] Unused
Public Instance Methods
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 63 def each &block n = Google::Protobuf::FFI.method_count(self) 0.upto(n-1) do |i| yield(Google::Protobuf::FFI.get_method_by_index(self, i)) end nil end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 59 def file_descriptor @descriptor_pool.send(:get_file_descriptor, Google::Protobuf::FFI.file_def_by_raw_service_def(@service_def)) end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 51 def inspect "#{self.class.name}: #{name}" end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 55 def name @name ||= Google::Protobuf::FFI.get_service_full_name(self) end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 71 def options @options ||= begin size_ptr = ::FFI::MemoryPointer.new(:size_t, 1) temporary_arena = Google::Protobuf::FFI.create_arena buffer = Google::Protobuf::FFI.service_options(self, size_ptr, temporary_arena) Google::Protobuf::ServiceOptions.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze).freeze end end
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 80 def to_proto @to_proto ||= begin size_ptr = ::FFI::MemoryPointer.new(:size_t, 1) temporary_arena = Google::Protobuf::FFI.create_arena buffer = Google::Protobuf::FFI.service_to_proto(self, size_ptr, temporary_arena) Google::Protobuf::ServiceDescriptorProto.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze) end end
Private Instance Methods
Source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 102 def c_type @c_type ||= Google::Protobuf::FFI.get_c_type(self) end