| use crate::process_telemetry::ProcessTelemetry; | |
| use codex_exec_server_protocol::JSONRPCErrorError; | |
| use crate::ExecServerRuntimePaths; | |
| use crate::local_process::LocalProcess; | |
| use crate::protocol::ExecParams; | |
| use crate::protocol::ExecResponse; | |
| use crate::protocol::ReadParams; | |
| use crate::protocol::ReadResponse; | |
| use crate::protocol::SignalParams; | |
| use crate::protocol::SignalResponse; | |
| use crate::protocol::TerminateParams; | |
| use crate::protocol::TerminateResponse; | |
| use crate::protocol::WriteParams; | |
| use crate::protocol::WriteResponse; | |
| use crate::rpc::RpcNotificationSender; | |
| use crate::telemetry::ExecServerTelemetry; | |
| pub(crate) struct ProcessHandler { | |
| process: LocalProcess, | |
| } | |
| impl ProcessHandler { | |
| pub(crate) fn new( | |
| notifications: RpcNotificationSender, | |
| telemetry: ExecServerTelemetry, | |
| runtime_paths: ExecServerRuntimePaths, | |
| ) -> Self { | |
| Self { | |
| process: LocalProcess::new(notifications, telemetry, runtime_paths), | |
| } | |
| } | |
| pub(crate) async fn shutdown(&self) { | |
| self.process.shutdown().await; | |
| } | |
| pub(crate) fn set_notification_sender(&self, notifications: Option<RpcNotificationSender>) { | |
| self.process.set_notification_sender(notifications); | |
| } | |
| pub(crate) async fn exec( | |
| &self, | |
| params: ExecParams, | |
| telemetry: ProcessTelemetry, | |
| ) -> Result<ExecResponse, JSONRPCErrorError> { | |
| self.process.exec(params, telemetry).await | |
| } | |
| pub(crate) async fn exec_read( | |
| &self, | |
| params: ReadParams, | |
| ) -> Result<ReadResponse, JSONRPCErrorError> { | |
| self.process.exec_read(params).await | |
| } | |
| pub(crate) async fn exec_write( | |
| &self, | |
| params: WriteParams, | |
| ) -> Result<WriteResponse, JSONRPCErrorError> { | |
| self.process.exec_write(params).await | |
| } | |
| pub(crate) async fn signal( | |
| &self, | |
| params: SignalParams, | |
| ) -> Result<SignalResponse, JSONRPCErrorError> { | |
| self.process.signal_process(params).await | |
| } | |
| pub(crate) async fn terminate( | |
| &self, | |
| params: TerminateParams, | |
| ) -> Result<TerminateResponse, JSONRPCErrorError> { | |
| self.process.terminate_process(params).await | |
| } | |
| } | |