Class: GrpcKit::Session::DrainController
- Inherits:
-
Object
- Object
- GrpcKit::Session::DrainController
- Defined in:
- lib/grpc_kit/session/drain_controller.rb
Defined Under Namespace
Modules: Status
Instance Method Summary collapse
-
#initialize ⇒ DrainController
constructor
A new instance of DrainController.
- #next(session) ⇒ void
- #recv_ping_ack ⇒ void
- #start_draining ⇒ Object
- #start_draining? ⇒ Boolean
Constructor Details
#initialize ⇒ DrainController
Returns a new instance of DrainController.
16 17 18 |
# File 'lib/grpc_kit/session/drain_controller.rb', line 16 def initialize @status = Status::NOT_START end |
Instance Method Details
#next(session) ⇒ void
This method returns an undefined value.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/grpc_kit/session/drain_controller.rb', line 36 def next(session) case @status when Status::NOT_START # next_step when Status::STARTED session.submit_shutdown session.submit_ping next_step when Status::SENT_PING # skip until #recv_ping_ack is called (1RTT) when Status::RECV_PING_ACK session.submit_goaway(DS9::NO_ERROR, session.last_proc_stream_id) next_step when Status::SENT_GOAWAY session.shutdown end end |
#recv_ping_ack ⇒ void
This method returns an undefined value.
29 30 31 32 33 |
# File 'lib/grpc_kit/session/drain_controller.rb', line 29 def recv_ping_ack if @status == Status::SENT_PING next_step end end |