gapic-common - Class Gapic::ServiceStub::RpcCall (v0.24.0)

Reference documentation and code samples for the gapic-common class Gapic::ServiceStub::RpcCall.

Inherits

  • Object

Methods

#call

def call(request, options: nil) { |response, operation| ... } -> Object

Invoke the RPC call.

Parameters
  • request (Object) — The request object.
  • options (Gapic::CallOptions, Hash) (defaults to: nil) — The options for making the RPC call. A Hash can be provided to customize the options object, using keys that match the arguments for CallOptions.new. This object should only be used once.
Yields
  • (response, operation) — Access the response along with the RPC operation. Additionally, throwing :response, obj within the block will change the return value to obj.
Yield Parameters
  • response (Object) — The response object.
  • operation (::GRPC::ActiveCall::Operation) — The RPC operation for the response.
Returns
  • (Object) — The response object.
Examples
require "google/showcase/v1beta1/echo_pb"
require "google/showcase/v1beta1/echo_services_pb"
require "gapic"
require "gapic/grpc"

echo_channel = ::GRPC::Core::Channel.new(
  "localhost:7469", nil, :this_channel_is_insecure
)
echo_stub = Gapic::ServiceStub.new(
  Google::Showcase::V1beta1::Echo::Stub,
  endpoint: "localhost:7469", credentials: echo_channel
)
echo_call = Gapic::ServiceStub::RpcCall.new echo_stub.method :echo

request = Google::Showcase::V1beta1::EchoRequest.new
response = echo_call.call request

Using custom call options:

require "google/showcase/v1beta1/echo_pb"
require "google/showcase/v1beta1/echo_services_pb"
require "gapic"
require "gapic/grpc"

echo_channel = ::GRPC::Core::Channel.new(
  "localhost:7469", nil, :this_channel_is_insecure
)
echo_stub = Gapic::ServiceStub.new(
  Google::Showcase::V1beta1::Echo::Stub,
  endpoint: "localhost:7469", credentials: echo_channel
)
echo_call = Gapic::ServiceStub::RpcCall.new echo_stub.method :echo

request = Google::Showcase::V1beta1::EchoRequest.new
options = Gapic::CallOptions.new(
  retry_policy = {
    retry_codes: [::GRPC::Core::StatusCodes::UNAVAILABLE]
  }
)
response = echo_call.call request, options: options

Accessing the RPC operation using a block:

require "google/showcase/v1beta1/echo_pb"
require "google/showcase/v1beta1/echo_services_pb"
require "gapic"
require "gapic/grpc"

echo_channel = ::GRPC::Core::Channel.new(
  "localhost:7469", nil, :this_channel_is_insecure
)
echo_stub = Gapic::ServiceStub.new(
  Google::Showcase::V1beta1::Echo::Stub,
  endpoint: "localhost:7469", credentials: echo_channel
)
echo_call = Gapic::ServiceStub::RpcCall.new echo_stub.method :echo

request = Google::Showcase::V1beta1::EchoRequest.new
metadata = echo_call.call request do |_response, operation|
  throw :response, operation.trailing_metadata
end

#initialize

def initialize(stub_method, stub_logger: nil, method_name: nil) -> RpcCall

Creates an API object for making a single RPC call.

In typical usage, stub_method will be a proc used to make an RPC request. This will mostly likely be a bound method from a request Stub used to make an RPC call.

The result is created by applying a series of function decorators defined in this module to stub_method.

The result is another proc which has the same signature as the original.

Parameter
  • stub_method (Proc) — Used to make a bare rpc call.
Returns
  • (RpcCall) — a new instance of RpcCall

#stub_method

def stub_method()

Returns the value of attribute stub_method.