pub struct SingBoxProcess { /* private fields */ }Expand description
The owner-local sing-box process adapter.
Implementations§
Source§impl SingBoxProcess
impl SingBoxProcess
Sourcepub fn with_tokio(
binary_path: PathBuf,
config_path: PathBuf,
instance_id: CoreInstanceId,
controller_address: SocketAddr,
) -> Result<Self, PortError>
pub fn with_tokio( binary_path: PathBuf, config_path: PathBuf, instance_id: CoreInstanceId, controller_address: SocketAddr, ) -> Result<Self, PortError>
Creates the process adapter that launches the binary through tokio.
Fails with a Failed port error when the controller address is not a
fixed loopback address.
Sourcepub fn new(
binary_path: PathBuf,
config_path: PathBuf,
instance_id: CoreInstanceId,
controller_address: SocketAddr,
command: Arc<dyn SingBoxCommandPort>,
) -> Result<Self, PortError>
pub fn new( binary_path: PathBuf, config_path: PathBuf, instance_id: CoreInstanceId, controller_address: SocketAddr, command: Arc<dyn SingBoxCommandPort>, ) -> Result<Self, PortError>
Creates the process adapter with an injected command boundary.
Sourcepub fn new_with_operation_gate(
binary_path: PathBuf,
config_path: PathBuf,
instance_id: CoreInstanceId,
controller_address: SocketAddr,
command: Arc<dyn SingBoxCommandPort>,
operation_gate: Arc<SingBoxCoreOperationGate>,
) -> Result<Self, PortError>
pub fn new_with_operation_gate( binary_path: PathBuf, config_path: PathBuf, instance_id: CoreInstanceId, controller_address: SocketAddr, command: Arc<dyn SingBoxCommandPort>, operation_gate: Arc<SingBoxCoreOperationGate>, ) -> Result<Self, PortError>
Creates the process adapter that shares one operation gate.
Sourcepub fn binary_path(&self) -> &PathBuf
pub fn binary_path(&self) -> &PathBuf
Returns the path of the sing-box binary the adapter launches.
Sourcepub fn config_path(&self) -> &PathBuf
pub fn config_path(&self) -> &PathBuf
Returns the path of the configuration file the core reads.
Sourcepub fn operation_gate(&self) -> Arc<SingBoxCoreOperationGate> ⓘ
pub fn operation_gate(&self) -> Arc<SingBoxCoreOperationGate> ⓘ
Returns the gate that serializes process activation with file commits.
Trait Implementations§
Source§impl CoreProcess for SingBoxProcess
impl CoreProcess for SingBoxProcess
Source§fn core_identity(&self) -> Option<CoreIdentity>
fn core_identity(&self) -> Option<CoreIdentity>
Stable engine/configured-instance identity. Missing identity disables
scoped core commands instead of guessing which backend owns the process.
Source§fn start<'life0, 'async_trait>(
&'life0 self,
context: CoreProcessStartContext,
) -> Pin<Box<dyn Future<Output = Result<(), PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn start<'life0, 'async_trait>(
&'life0 self,
context: CoreProcessStartContext,
) -> Pin<Box<dyn Future<Output = Result<(), PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Starts the owned core process for the supplied ownership context. Read more
Source§fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stop the exact configured process instance and confirm its exit before
returning success. A command acknowledgement or disappearance of a
tracked PID record is not terminal evidence; identity mismatches and
stop deadlines fail. With no owned or recorded instance, stop is an
idempotent no-op.
Source§fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CoreLifecycle, PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CoreLifecycle, PortError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Observes the lifecycle state of the owned process.
Source§fn controller_endpoint(&self) -> Option<String>
fn controller_endpoint(&self) -> Option<String>
Returns the controller endpoint of the owned process, when it has one.
Source§fn pid<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pid<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the process id of the owned process, when the host can read it.
Source§fn prepare_start<'life0, 'life1, 'async_trait>(
&'life0 self,
_context: &'life1 CoreProcessStartContext,
) -> Pin<Box<dyn Future<Output = Result<CoreProcessStartAdmission, PortError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn prepare_start<'life0, 'life1, 'async_trait>(
&'life0 self,
_context: &'life1 CoreProcessStartContext,
) -> Pin<Box<dyn Future<Output = Result<CoreProcessStartAdmission, PortError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Observe the host process slot before the application persists its
managed session proof. Android overrides this to refuse stale or
ambiguous children before a new session can replace their proof.
Auto Trait Implementations§
impl !Freeze for SingBoxProcess
impl !RefUnwindSafe for SingBoxProcess
impl !UnwindSafe for SingBoxProcess
impl Forget for SingBoxProcess
impl Move for SingBoxProcess
impl Send for SingBoxProcess
impl Sync for SingBoxProcess
impl Unpin for SingBoxProcess
impl UnsafeUnpin for SingBoxProcess
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more