hadoop_common/ipc/
rpc_engine.rs

1use super::{AlignmentContext, RpcProtocol};
2use crate::{conf::Configuration, io::retry::RetryPolicy, security::UserGroupInformation};
3use atomic::Atomic;
4use std::{net::SocketAddr, rc::Rc, sync::Arc};
5
6/// An RPC implementation.
7pub trait RpcEngine {
8    /// Construct a client-side proxy object.
9    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}