Class: Biryani::StreamContext

Inherits:
Object
  • Object
show all
Defined in:
lib/biryani/streams_context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stream_id, send_initial_window_size, recv_initial_window_size, proc, tx) ⇒ StreamContext

Returns a new instance of StreamContext.

Parameters:

  • stream_id (Integer)
  • send_initial_window_size (Integer)
  • recv_initial_window_size (Integer)
  • proc (Proc)
  • tx (Ractor::Port)


111
112
113
114
115
116
117
118
# File 'lib/biryani/streams_context.rb', line 111

def initialize(stream_id, send_initial_window_size, recv_initial_window_size, proc, tx)
  @stream = Stream.new(tx, stream_id, proc)
  @send_window = Window.new(send_initial_window_size)
  @recv_window = Window.new(recv_initial_window_size)
  @fragment = ''.b
  @content = ''.b
  @state = State.new
end

Instance Attribute Details

#contentObject

Returns the value of attribute content.



104
105
106
# File 'lib/biryani/streams_context.rb', line 104

def content
  @content
end

#fragmentObject

Returns the value of attribute fragment.



104
105
106
# File 'lib/biryani/streams_context.rb', line 104

def fragment
  @fragment
end

#recv_windowObject

Returns the value of attribute recv_window.



104
105
106
# File 'lib/biryani/streams_context.rb', line 104

def recv_window
  @recv_window
end

#send_windowObject

Returns the value of attribute send_window.



104
105
106
# File 'lib/biryani/streams_context.rb', line 104

def send_window
  @send_window
end

Instance Method Details

#<<(req) ⇒ Object

Parameters:



121
122
123
# File 'lib/biryani/streams_context.rb', line 121

def <<(req)
  @stream.rx.send(req, move: true)
end

#active?Boolean

Returns:

  • (Boolean)


146
147
148
# File 'lib/biryani/streams_context.rb', line 146

def active?
  @state.active?
end

#closeObject



125
126
127
# File 'lib/biryani/streams_context.rb', line 125

def close
  @state.close
end

#closed?Boolean

Returns:

  • (Boolean)


136
137
138
# File 'lib/biryani/streams_context.rb', line 136

def closed?
  @state.closed?
end

#half_closed_remote?Boolean

Returns:

  • (Boolean)


151
152
153
# File 'lib/biryani/streams_context.rb', line 151

def half_closed_remote?
  @state.half_closed_remote?
end

#idle?Boolean

Returns:

  • (Boolean)


141
142
143
# File 'lib/biryani/streams_context.rb', line 141

def idle?
  @state.idle?
end

#receiving_continuation?Boolean

Returns:

  • (Boolean)


156
157
158
# File 'lib/biryani/streams_context.rb', line 156

def receiving_continuation?
  @state.receiving_continuation?
end

#state_transition!(frame, direction) ⇒ Object

Parameters:

  • frame (Object)
  • direction (:send, :recv)


131
132
133
# File 'lib/biryani/streams_context.rb', line 131

def state_transition!(frame, direction)
  @state.transition!(frame, direction)
end