use crate::access_manager::AccessManager;
use crate::config::ExecConfig;
use std::sync::Arc;
pub type SharedExecConfig = Arc<parking_lot::RwLock<ExecConfig>>;
pub struct ExecApi {
config: SharedExecConfig,
access_manager: Arc<parking_lot::Mutex<AccessManager>>,
}
impl ExecApi {
pub fn new(
config: SharedExecConfig,
access_manager: Arc<parking_lot::Mutex<AccessManager>>,
) -> Self {
Self {
config,
access_manager,
}
}
pub fn config_snapshot(&self) -> ExecConfig {
self.config.read().clone()
}
pub fn access_manager(&self) -> &Arc<parking_lot::Mutex<AccessManager>> {
&self.access_manager
}
pub fn shared_config(&self) -> SharedExecConfig {
Arc::clone(&self.config)
}
}