co_usb
Loading...
Searching...
No Matches
Async hotplug adapters

Coroutine adapters for hotplug API. More...

Namespaces

namespace  co_usb::hotplug::events
 Concrete values of hotplug events.
 
namespace  co_usb::hotplug::flags
 Concrete values of hotplug flags.
 

Classes

struct  co_usb::hotplug::detail::hotplug_awaitable
 Low-level awaitable primitive for strapping hotplug callbacks to a coroutine ecosystem. More...
 
struct  co_usb::hotplug::device_acceptor
 Asio/Corosio-like acceptor for devices via hotplug API. More...
 
struct  co_usb::device_triplet
 An aggregate struct to pass to functions requiring device information. More...
 

Typedefs

using co_usb::hotplug::event_type = detail::flag_type< libusb_hotplug_event, struct hotplug_event_t >
 enum type for libusb_hotplug_event
 
using co_usb::hotplug::flag_type = detail::flag_type< libusb_hotplug_flag, struct hotplug_flag_t >
 enum type for libusb_hotplug_flag
 

Functions

auto co_usb::hotplug::oneshot_hotplug (event_type events, flag_type flags, device_triplet triplet) -> boost::capy::io_task< event_type, device_ref >
 Oneshot coroutine to get a one-time hotplug accept.
 

Detailed Description

Coroutine adapters for hotplug API.

Typedef Documentation

◆ event_type

using co_usb::hotplug::event_type = typedef detail::flag_type<libusb_hotplug_event, struct hotplug_event_t>

enum type for libusb_hotplug_event

◆ flag_type

using co_usb::hotplug::flag_type = typedef detail::flag_type<libusb_hotplug_flag, struct hotplug_flag_t>

enum type for libusb_hotplug_flag

Function Documentation

◆ oneshot_hotplug()

auto co_usb::hotplug::oneshot_hotplug ( event_type  events,
flag_type  flags,
device_triplet  triplet 
) -> boost::capy::io_task<event_type, device_ref>
inline

Oneshot coroutine to get a one-time hotplug accept.

Note
Includes cancellation semantics.

It may be more beneficial than device_accepto for simpler applications due to noticably less performance overhead and ease-of-use.