pub struct FsEventHandle { /* private fields */ }
Expand description

FS Event handles allow the user to monitor a given path for changes, for example, if the file was renamed or there was a generic change in it. This handle uses the best backend for the job on each platform.

Note: For AIX, the non default IBM bos.ahafs package has to be installed. The AIX Event Infrastructure file system (ahafs) has some limitations:

  • ahafs tracks monitoring per process and is not thread safe. A separate process must be spawned for each monitor for the same event.
  • Events for file modification (writing to a file) are not received if only the containing folder is watched.

See documentation for more details.

The z/OS file system events monitoring infrastructure does not notify of file creation/deletion within a directory that is being monitored. See the IBM Knowledge centre for more details.

Implementations§

source§

impl FsEventHandle

source

pub fn new(loop: &Loop) -> Result<FsEventHandle>

Create and initialize a fs event handle

source

pub fn start<CB: Into<FsEventCB<'static>>>( &mut self, path: &str, flags: FsEventFlags, cb: CB ) -> Result<(), Box<dyn Error>>

Start the handle with the given callback, which will watch the specified path for changes.

Note: Currently the only supported flag is RECURSIVE and only on OSX and Windows.

source

pub fn stop(&mut self) -> Result<()>

Stop the handle, the callback will no longer be called.

source

pub fn getpath(&self) -> Result<String>

Get the path being monitored by the handle.

Trait Implementations§

source§

impl Clone for FsEventHandle

source§

fn clone(&self) -> FsEventHandle

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl From<FsEventHandle> for Handle

source§

fn from(fs_event: FsEventHandle) -> Handle

Converts to this type from the input type.
source§

impl HandleTrait for FsEventHandle

source§

fn is_active(&self) -> bool

Returns non-zero if the handle is active, zero if it’s inactive. What “active” means depends on the type of handle: Read more
source§

fn is_closing(&self) -> bool

Returns non-zero if the handle is closing or closed, zero otherwise. Read more
source§

fn close<CB: Into<CloseCB<'static>>>(&mut self, cb: CB)

Request handle to be closed. close_cb will be called asynchronously after this call. This MUST be called on each handle before memory is released. Moreover, the memory can only be released in close_cb or after it has returned. Read more
source§

fn ref(&mut self)

Reference the given handle. References are idempotent, that is, if a handle is already referenced calling this function again will have no effect.
source§

fn unref(&mut self)

Un-reference the given handle. References are idempotent, that is, if a handle is not referenced calling this function again will have no effect.
source§

fn has_ref(&self) -> bool

Returns true if the handle referenced, zero otherwise.
source§

fn send_buffer_size(&mut self, value: i32) -> Result<i32>

Gets or sets the size of the send buffer that the operating system uses for the socket. Read more
source§

fn recv_buffer_size(&mut self, value: i32) -> Result<i32>

Gets or sets the size of the receive buffer that the operating system uses for the socket. Read more
source§

fn get_fileno(&self) -> Result<OsFile>

Gets the platform dependent file descriptor equivalent. Read more
source§

fn get_loop(&self) -> Loop

Returns the Loop associated with this handle.
source§

fn get_type(&self) -> HandleType

Returns the type of the handle.
source§

impl ToHandle for FsEventHandle

source§

impl TryFrom<Handle> for FsEventHandle

§

type Error = ConversionError

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

fn try_from(handle: Handle) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for FsEventHandle

Auto Trait Implementations§

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.