Service

Struct Service 

Source
pub struct Service<'a> { /* private fields */ }
Expand description

A service builder, providing control over what commands the service supports before the service begins to run.

Implementations§

Source§

impl<'a> Service<'a>

Source

pub fn new() -> Self

Creates a new Service object.

By default, the service does not accept any service commands other than start.

Source

pub fn can_stop(&mut self) -> &mut Self

The service accepts stop and shutdown commands.

Source

pub fn can_pause(&mut self) -> &mut Self

The service accepts pause and resume commands.

Source

pub fn can_accept(&mut self, accept: u32) -> &mut Self

The service accepts other specified commands.

Source

pub fn can_fallback<F: FnOnce(&Service<'_>) + Send + 'a>( &mut self, f: F, ) -> &mut Self

Runs the fallback closure if the service is not started by the Service Control Manager.

Source

pub fn run<F: FnMut(&Service<'_>, Command) + Send + Sync + 'a>( &mut self, callback: F, ) -> Result<(), &'static str>

Runs the service with the given callback closure to receive commands sent by the service control manager.

This method will block for the life of the service. It will never return and immediately terminate the current process after indicating to the service control manager that the service has stopped.

Source

pub fn set_state(&self, state: State)

Sets the current state of the service.

In most cases, the service state is updated automatically and does not need to be set directly.

Source

pub fn handle(&self) -> *mut c_void

The raw handle representing the service.

Source

pub fn state(&self) -> State

The current state the service.

Source

pub fn command(&self, command: Command)

Sends the command to the service callback.

Source

pub fn handler( &self, control: u32, event_type: u32, event_data: *const c_void, ) -> u32

Low-level dispatcher to send control commands directly to the service.

Trait Implementations§

Source§

impl Default for Service<'_>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Send for Service<'_>

Source§

impl Sync for Service<'_>

Auto Trait Implementations§

§

impl<'a> !Freeze for Service<'a>

§

impl<'a> !RefUnwindSafe for Service<'a>

§

impl<'a> Unpin for Service<'a>

§

impl<'a> !UnwindSafe for Service<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.