hadoop_common/ipc/
rpc_engine.rs1use super::{AlignmentContext, RpcProtocol};
2use crate::{conf::Configuration, io::retry::RetryPolicy, security::UserGroupInformation};
3use atomic::Atomic;
4use std::{net::SocketAddr, rc::Rc, sync::Arc};
5
6pub trait RpcEngine {
8 fn get_proxy<T: RpcProtocol>(
10 &self,
11 addr: &SocketAddr,
12 ticket: &UserGroupInformation,
13 conf: &Configuration,
14 rpc_timeout: i32,
15 connection_retry_policy: Option<Rc<dyn RetryPolicy>>,
16 fallback_to_simple_auth: Option<Arc<Atomic<bool>>>,
17 alignment_context: Option<Rc<dyn AlignmentContext>>,
18 ) -> anyhow::Result<T>;
19}