class Google::Protobuf::ServiceDescriptor

Attributes

service_def[RW]

Public Class Methods

from_native(service_def, _ = nil) click to toggle source

@param service_def [::FFI::Pointer] ServiceDef pointer to be wrapped @param _ [Object] Unused

# 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
new(*arguments, &block) click to toggle 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
new(service_def, descriptor_pool) click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 82
def initialize(service_def, descriptor_pool)
  @service_def = service_def 
  @descriptor_pool = descriptor_pool
end
to_native(value, _) click to toggle source

@param value [ServiceDescriptor] ServiceDescriptor to convert to an FFI native type @param _ [Object] Unused

# 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

Private Class Methods

private_constructor(service_def, descriptor_pool) click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 87
def self.private_constructor(service_def, descriptor_pool)
  instance = allocate
  instance.send(:initialize, service_def, descriptor_pool)
  instance
end

Public Instance Methods

each() { |get_method_by_index| ... } click to toggle 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
file_descriptor() click to toggle 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
inspect() click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 51
def inspect
  "#{self.class.name}: #{name}"
end
name() click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 55
def name
  @name ||= Google::Protobuf::FFI.get_service_full_name(self)
end
options() click to toggle 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
to_s() click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 47
def to_s
  inspect
end

Private Instance Methods

c_type() click to toggle source
# File lib/google/protobuf/ffi/service_descriptor.rb, line 93
def c_type
  @c_type ||= Google::Protobuf::FFI.get_c_type(self)
end