co_usb
Loading...
Searching...
No Matches
co_usb::ev::any_event_handler Struct Reference

Owning type-erased wrapper for EventHandler. More...

#include <any_event_handler.hpp>

Public Member Functions

 any_event_handler () noexcept
 
template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
 any_event_handler (std::pmr::memory_resource *memres, Args &&...args)
 
template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
 any_event_handler (Args &&...args)
 
template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
auto emplace (std::pmr::memory_resource *memres, Args &&...args)
 
template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
auto emplace (Args &&...args)
 
 any_event_handler (any_event_handler const &other)=delete
 
any_event_handleroperator= (any_event_handler const &other)=delete
 
 any_event_handler (any_event_handler &&other) noexcept
 
any_event_handleroperator= (any_event_handler &&other) noexcept
 
 ~any_event_handler ()
 
auto valid () const noexcept -> bool
 
auto start (libusb_context *usb_ctx, std::stop_token stop) -> bool
 
auto ref () noexcept -> void
 
auto unref () noexcept -> void
 
auto stop () -> void
 

Public Attributes

friend event_handler_ref
 

Detailed Description

Owning type-erased wrapper for EventHandler.

This type is used to uniformly store objects of any type that conform to co_usb::ev::detail::EventHandler concept. It allocates the space for the buffer using a given pointer to a memory resource and will preserve this pointer inside of itself.

See also
event_handler_ref

Constructor & Destructor Documentation

◆ any_event_handler() [1/5]

co_usb::ev::any_event_handler::any_event_handler ( )
inlineexplicitnoexcept

◆ any_event_handler() [2/5]

template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
co_usb::ev::any_event_handler::any_event_handler ( std::pmr::memory_resource *  memres,
Args &&...  args 
)
inlineexplicit

◆ any_event_handler() [3/5]

template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
co_usb::ev::any_event_handler::any_event_handler ( Args &&...  args)
inlineexplicit

◆ any_event_handler() [4/5]

co_usb::ev::any_event_handler::any_event_handler ( any_event_handler const &  other)
delete

◆ any_event_handler() [5/5]

co_usb::ev::any_event_handler::any_event_handler ( any_event_handler &&  other)
inlinenoexcept

◆ ~any_event_handler()

co_usb::ev::any_event_handler::~any_event_handler ( )
inline

Member Function Documentation

◆ emplace() [1/2]

template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
auto co_usb::ev::any_event_handler::emplace ( Args &&...  args)
inline

◆ emplace() [2/2]

template<detail::EventHandler HandlerTy, typename... Args>
requires (!std::same_as<HandlerTy, any_event_handler> && !std::same_as<HandlerTy, event_handler_ref> && std::constructible_from<HandlerTy, Args...>)
auto co_usb::ev::any_event_handler::emplace ( std::pmr::memory_resource *  memres,
Args &&...  args 
)
inline

◆ operator=() [1/2]

any_event_handler & co_usb::ev::any_event_handler::operator= ( any_event_handler &&  other)
inlinenoexcept

◆ operator=() [2/2]

any_event_handler & co_usb::ev::any_event_handler::operator= ( any_event_handler const &  other)
delete

◆ ref()

auto co_usb::ev::any_event_handler::ref ( ) -> void
inlinenoexcept

◆ start()

auto co_usb::ev::any_event_handler::start ( libusb_context *  usb_ctx,
std::stop_token  stop 
) -> bool
inline

◆ stop()

auto co_usb::ev::any_event_handler::stop ( ) -> void
inline

◆ unref()

auto co_usb::ev::any_event_handler::unref ( ) -> void
inlinenoexcept

◆ valid()

auto co_usb::ev::any_event_handler::valid ( ) const -> bool
inlinenoexcept

Member Data Documentation

◆ event_handler_ref

friend co_usb::ev::any_event_handler::event_handler_ref

The documentation for this struct was generated from the following file: