Class: Gruf::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/gruf/response.rb

Overview

Wraps the active call operation to provide metadata and timing around the request

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(op, execution_time = nil) ⇒ Response

Initialize a response object with the given gRPC operation

Parameters:

  • op (GRPC::ActiveCall::Operation)

    The given operation for the current call

  • execution_time (Float) (defaults to: nil)

    The amount of time that the response took to occur



40
41
42
43
44
45
46
47
48
# File 'lib/gruf/response.rb', line 40

def initialize(op, execution_time = nil)
  @operation = op
  @message = op.execute
  @metadata = op.
  @trailing_metadata = op.
  @deadline = op.deadline
  @cancelled = op.cancelled?
  @execution_time = execution_time || 0.0
end

Instance Attribute Details

#cancelledBoolean (readonly)

Returns Whether or not the operation was cancelled.

Returns:

  • (Boolean)

    Whether or not the operation was cancelled



30
31
32
# File 'lib/gruf/response.rb', line 30

def cancelled
  @cancelled
end

#deadlineTime (readonly)

Returns The set deadline on the call.

Returns:

  • (Time)

    The set deadline on the call



28
29
30
# File 'lib/gruf/response.rb', line 28

def deadline
  @deadline
end

#execution_timeFloat (readonly)

Returns The time that the request took to execute.

Returns:

  • (Float)

    The time that the request took to execute



32
33
34
# File 'lib/gruf/response.rb', line 32

def execution_time
  @execution_time
end

#metadataHash (readonly)

Returns The metadata that was attached to the operation.

Returns:

  • (Hash)

    The metadata that was attached to the operation



24
25
26
# File 'lib/gruf/response.rb', line 24

def 
  @metadata
end

#operationGRPC::ActiveCall::Operation (readonly)

Returns The operation that was executed for the given request.

Returns:

  • (GRPC::ActiveCall::Operation)

    The operation that was executed for the given request



22
23
24
# File 'lib/gruf/response.rb', line 22

def operation
  @operation
end

#trailing_metadataHash (readonly)

Returns The trailing metadata that the service returned.

Returns:

  • (Hash)

    The trailing metadata that the service returned



26
27
28
# File 'lib/gruf/response.rb', line 26

def 
  @trailing_metadata
end

Instance Method Details

#internal_execution_timeFloat

Return execution time of the call internally on the server in ms

Returns:

  • (Float)

    The execution time of the response



64
65
66
# File 'lib/gruf/response.rb', line 64

def internal_execution_time
  ['timer'].to_f
end

#messageObject

Return the message returned by the request

Returns:

  • (Object)

    The protobuf response message



55
56
57
# File 'lib/gruf/response.rb', line 55

def message
  @message ||= op.execute
end