def send(frame)
      process_priority(frame) if frame[:type] == :priority

      case frame[:type]
      when :data
        # @remote_window is maintained in send_data
        send_data(frame)
      when :window_update
        manage_state(frame) do
          @local_window += frame[:increment]
          emit(:frame, frame)
        end
      else
        manage_state(frame) do
          emit(:frame, frame)
        end
      end
    end
def send(frame)
      process_priority(frame) if frame[:type] == :priority

      case frame[:type]
      when :data
        # @remote_window is maintained in send_data
        send_data(frame)
      when :window_update
        manage_state(frame) do
          @local_window += frame[:increment]
          emit(:frame, frame)
        end
      else
        manage_state(frame) do
          emit(:frame, frame)
        end
      end
    end
Processes outgoing HTTP 2.0 frames. Data frames may be automatically
 split and buffered based on maximum frame size and current stream flow
 control window size.

 @param frame [Hash]