Struct libpulse_binding::mainloop::standard::Mainloop[][src]

pub struct Mainloop {
    pub _inner: Rc<MainloopInner<MainloopInternal>>,
}

This acts as a safe interface to the internal PA Mainloop.

The mainloop object pointers are further enclosed here in a ref counted wrapper, allowing this outer wrapper to have clean methods for creating event objects, which can cleanly pass a copy of the inner ref counted mainloop object to them. Giving this to events serves two purposes, firstly because they need the API pointer, secondly, it ensures that event objects do not outlive the mainloop object.

Fields

The ref-counted inner data

Methods

impl Mainloop
[src]

Allocate a new main loop object

Prepare for a single iteration of the main loop.

Returns Err on error or exit request.

timeout specifies a maximum timeout for the subsequent poll, or None for blocking behaviour. Only positive values should be provided, negative values will have the same effect as None.

Execute the previously prepared poll.

Dispatch timeout, IO and deferred events from the previously executed poll. On success returns the number of source dispatched.

Return the return value as specified with the main loop's quit routine.

Run a single iteration of the main loop.

This is a convenience function for prepare, poll and dispatch.

If block is true, block for events if none are queued.

Returns an IterateResult variant:

  • On success, returns IterateResult::Success containing the number of sources dispatched in this iteration.
  • If exit was requested, returns IterateResult::Quit containing quit's retval.
  • On error, returns IterateResult::Err containing error value.

Run unlimited iterations of the main loop object until the main loop's quit routine is called.

On success, returns Ok containing quit's return value. On error returns Err containing a tuple of the error value and quit's return value.

Return the abstract main loop abstraction layer vtable for this main loop.

No need to free the API as it is owned by the loop and is destroyed when the loop is freed.

Talking to PA directly with C requires fetching this pointer explicitly via this function. This is actually unnecessary through this binding. The pointer is retrieved automatically upon Mainloop creation, stored internally, and automatically obtained from it by functions that need it.

Shutdown the main loop with the specified return value

Interrupt a running poll (for threaded systems)

Change the poll() implementation

Trait Implementations

impl Mainloop for Mainloop
[src]

Create a new IO event Read more

Create a new timer event Read more

Create a new monotonic-based timer event Read more

Create a new deferred event Read more

Run the specified callback once from the main loop using an anonymous defer event. If the mainloop runs in a different thread, you need to follow the mainloop implementation's rules regarding how to safely create defer events. In particular, if you're using ::mainloop::threaded, you must lock the mainloop before calling this function. Read more

Call quit

impl MainloopSignals for Mainloop
[src]

Initialize the UNIX signal subsystem and bind it to the specified main loop

Cleanup the signal subsystem

Auto Trait Implementations

impl !Send for Mainloop

impl !Sync for Mainloop