void MultiQueryStreamHandler::streamCallback()

in squangle/mysql_client/DbResult.cpp [271:297]


void MultiQueryStreamHandler::streamCallback(
    FetchOperation* op,
    StreamState op_state) {
  // Runs in IO Thread
  if (op_state == StreamState::InitQuery) {
    op->pauseForConsumer();
    state_ = State::InitResult;
  } else if (op_state == StreamState::RowsReady) {
    op->pauseForConsumer();
    state_ = State::ReadRows;
  } else if (op_state == StreamState::QueryEnded) {
    op->pauseForConsumer();
    state_ = State::ReadResult;
  } else if (op_state == StreamState::Success) {
    state_ = State::OperationSucceeded;
  } else {
    exception_wrapper_ = folly::make_exception_wrapper<QueryException>(
        op->numCurrentQuery(),
        op->result(),
        op->mysql_errno(),
        op->mysql_error(),
        *op->connection()->getKey(),
        op->elapsed());
    state_ = State::OperationFailed;
  }
  op->connection()->notify();
}