SerializePipeline::Ptr RpcPipelineFactory::newPipeline()

in src/hbase/connection/pipeline.cc [35:54]


SerializePipeline::Ptr RpcPipelineFactory::newPipeline(
    std::shared_ptr<folly::AsyncTransportWrapper> sock) {
  folly::SocketAddress addr;  // for logging
  sock->getPeerAddress(&addr);

  auto pipeline = SerializePipeline::create();
  pipeline->addBack(wangle::AsyncSocketHandler{sock});
  pipeline->addBack(wangle::EventBaseHandler{});
  bool secure = false;
  /* for RPC test, there's no need to setup Sasl */
  if (!conf_->GetBool(RpcSerde::HBASE_CLIENT_RPC_TEST_MODE,
                      RpcSerde::DEFAULT_HBASE_CLIENT_RPC_TEST_MODE)) {
    secure = security::User::IsSecurityEnabled(*conf_);
    pipeline->addBack(SaslHandler{user_util_.user_name(secure), conf_});
  }
  pipeline->addBack(wangle::LengthFieldBasedFrameDecoder{});
  pipeline->addBack(ClientHandler{user_util_.user_name(secure), codec_, conf_, addr.describe()});
  pipeline->finalize();
  return pipeline;
}