dxd - dynax driver framework 2.2.0d81
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::platform::pipe< device_t, interface_t > Class Template Reference

#include <dx_usb_device_platform.h>

+ Inheritance diagram for dx::usb::platform::pipe< device_t, interface_t >:
+ Collaboration diagram for dx::usb::platform::pipe< device_t, interface_t >:

Classes

struct  isoc
 

Public Types

enum class  type : uint8_t {
  control =::kUSBControl , isoc = ::kUSBIsoc , bulk = ::kUSBBulk , irq = ::kUSBInterrupt ,
  control =::UsbdPipeTypeControl , isoc = ::UsbdPipeTypeIsochronous , bulk = ::UsbdPipeTypeBulk , irq = ::UsbdPipeTypeInterrupt
}
 
enum class  type : unsigned char {
  control =::kUSBControl , isoc = ::kUSBIsoc , bulk = ::kUSBBulk , irq = ::kUSBInterrupt ,
  control =::UsbdPipeTypeControl , isoc = ::UsbdPipeTypeIsochronous , bulk = ::UsbdPipeTypeBulk , irq = ::UsbdPipeTypeInterrupt
}
 

Public Member Functions

pipeabort () try
 
 dx_catchall_rethrow () os_result status() const noexcept
 
 dx_catchall_rethrow (try {const_cast< pipe * >(this) ->clear();} dx_catchall_handler(this,), "idx:%d size:%lld", idx, sizeof request) template< typename data_t > data_t submit(const control &control) const
 control request to pipe
 
bool in () const noexcept
 bus initializer (isoc, bulk, pci, etc.) compatibility
 
 pipe (device_t &device, const endpoint &endpoint)
 
virtual void start (uint64_t, unsigned int=1)
 async IO thread control (required for Windows compatibility)
 
virtual void start (uint64_t, unsigned int=1) try
 async IO thread control
 
virtual unsigned int stop (bool=false) noexcept
 
template<typename data_t >
pipesubmit (const request< data_t > &request) const try
 standard request to pipe
 

Public Attributes

device_t & device
 
interface_t & interface
 
enum dx::usb::platform::pipe::type type
 

Protected Member Functions

virtual void exception (const dx::exception &exception, bool filtered=false) const noexcept
 
virtual void exception (const dx::exception &exception, bool filtered=false) const noexcept
 
virtual void received (os_result, size_t)
 virtual async callbacks
 
virtual void received (os_result, size_t)
 virtual async callbacks
 
virtual void received (os_result, size_t, int64_t, usb::isoc::frame *)
 
virtual void received (os_result, size_t, int64_t, usb::isoc::frame *)
 
virtual void transmitted (os_result, size_t)
 
virtual void transmitted (os_result, size_t)
 
virtual void transmitted (os_result, size_t, int64_t, usb::isoc::frame *)
 
virtual void transmitted (os_result, size_t, int64_t, usb::isoc::frame *)
 
virtual ~pipe () noexcept
 
virtual ~pipe () noexcept=default
 

Protected Attributes

struct { 
 
address 
 
uint8_t address = 0
 
uint8_t idx = 0
 
struct { 
 
   class buffer
 
   }   buffer 
 
   unsigned int   micro_frames = 0 
 
isoc 
 
struct dx::usb::platform::pipe::isoc isoc
 
struct { 
 
   ::WINUSB_INTERFACE_HANDLE   handle 
 
winusb 
 

Member Enumeration Documentation

◆ type [1/2]

template<typename device_t , typename interface_t >
enum class enum dx::usb::platform::pipe::type dx::usb::platform::pipe< device_t, interface_t >::type
strong
Enumerator
control 
isoc 
bulk 
irq 
control 
isoc 
bulk 
irq 

◆ type [2/2]

template<typename device_t , typename interface_t >
enum class dx::usb::platform::pipe::type : unsigned char
strong
Enumerator
control 
isoc 
bulk 
irq 
control 
isoc 
bulk 
irq 

Constructor & Destructor Documentation

◆ ~pipe() [1/2]

template<typename device_t , typename interface_t >
virtual dx::usb::platform::pipe< device_t, interface_t >::~pipe ( )
inlineprotectedvirtualnoexcept

Reimplemented in dx::usb::pipe< device_t >, dx::usb::pipe< device< desc_t > >, dx::usb::pipe< dx::usb::stream::device >, dx::usb::pipe< dx::usb::stream::device< desc_t > >, and dx::usb::stream::pipe< desc_t, circular_t >.

+ Here is the call graph for this function:

◆ pipe()

template<typename device_t , typename interface_t >
dx::usb::platform::pipe< device_t, interface_t >::pipe ( device_t & device,
const endpoint & endpoint )
inline

◆ ~pipe() [2/2]

template<typename device_t , typename interface_t >
virtual dx::usb::platform::pipe< device_t, interface_t >::~pipe ( )
protectedvirtualdefaultnoexcept

Member Function Documentation

◆ abort()

template<typename device_t , typename interface_t >
pipe & dx::usb::platform::pipe< device_t, interface_t >::abort ( )
inline

◆ dx_catchall_rethrow() [1/2]

template<typename device_t , typename interface_t >
dx::usb::platform::pipe< device_t, interface_t >::dx_catchall_rethrow ( ) const
inlinenoexcept
+ Here is the call graph for this function:

◆ dx_catchall_rethrow() [2/2]

template<typename device_t , typename interface_t >
dx::usb::platform::pipe< device_t, interface_t >::dx_catchall_rethrow ( try {const_cast< pipe< device_t, interface_t > * > this) ->clear();} dx_catchall_handler(this,,
"idx:%d size:%lld" ,
idx ,
sizeof request ) const &
inline

control request to pipe

◆ exception() [1/2]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineprotectedvirtualnoexcept
+ Here is the call graph for this function:

◆ exception() [2/2]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineprotectedvirtualnoexcept
+ Here is the call graph for this function:

◆ in()

template<typename device_t , typename interface_t >
bool dx::usb::platform::pipe< device_t, interface_t >::in ( ) const
inlinenoexcept

bus initializer (isoc, bulk, pci, etc.) compatibility

◆ received() [1/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::received ( os_result ,
size_t  )
inlineprotectedvirtual

virtual async callbacks

Reimplemented in dx::usb::stream::pipe< desc_t, circular_t >.

◆ received() [2/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::received ( os_result ,
size_t  )
inlineprotectedvirtual

virtual async callbacks

Reimplemented in dx::usb::stream::pipe< desc_t, circular_t >.

◆ received() [3/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::received ( os_result ,
size_t ,
int64_t ,
usb::isoc::frame *  )
inlineprotectedvirtual

◆ received() [4/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::received ( os_result ,
size_t ,
int64_t ,
usb::isoc::frame *  )
inlineprotectedvirtual

◆ start() [1/2]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::start ( uint64_t ,
unsigned int = 1 )
inlinevirtual

async IO thread control (required for Windows compatibility)

Reimplemented in dx::usb::stream::pipe< desc_t, circular_t >.

◆ start() [2/2]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::start ( uint64_t ,
unsigned int = 1 )
inlinevirtual

async IO thread control

Reimplemented in dx::usb::stream::pipe< desc_t, circular_t >.

◆ stop()

template<typename device_t , typename interface_t >
virtual unsigned int dx::usb::platform::pipe< device_t, interface_t >::stop ( bool = false)
inlinevirtualnoexcept

◆ submit()

template<typename device_t , typename interface_t >
template<typename data_t >
pipe & dx::usb::platform::pipe< device_t, interface_t >::submit ( const request< data_t > & request) const
inline

standard request to pipe

◆ transmitted() [1/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::transmitted ( os_result ,
size_t  )
inlineprotectedvirtual

◆ transmitted() [2/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::transmitted ( os_result ,
size_t  )
inlineprotectedvirtual

◆ transmitted() [3/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::transmitted ( os_result ,
size_t ,
int64_t ,
usb::isoc::frame *  )
inlineprotectedvirtual

◆ transmitted() [4/4]

template<typename device_t , typename interface_t >
virtual void dx::usb::platform::pipe< device_t, interface_t >::transmitted ( os_result ,
size_t ,
int64_t ,
usb::isoc::frame *  )
inlineprotectedvirtual

Member Data Documentation

◆ [struct] [1/2]

struct { ... } dx::usb::platform::pipe< device_t, interface_t >::address

◆ address [2/2]

template<typename device_t , typename interface_t >
uint8_t dx::usb::platform::pipe< device_t, interface_t >::address = 0
protected

◆ [class]

class { ... } ::buffer dx::usb::platform::pipe< device_t, interface_t >::buffer

◆ device

template<typename device_t , typename interface_t >
device_t & dx::usb::platform::pipe< device_t, interface_t >::device

◆ handle

template<typename device_t , typename interface_t >
::WINUSB_INTERFACE_HANDLE dx::usb::platform::pipe< device_t, interface_t >::handle

◆ idx

template<typename device_t , typename interface_t >
uint8_t dx::usb::platform::pipe< device_t, interface_t >::idx = 0
protected

◆ interface

template<typename device_t , typename interface_t >
interface_t & dx::usb::platform::pipe< device_t, interface_t >::interface

◆ [struct] [1/2]

struct { ... } dx::usb::platform::pipe< device_t, interface_t >::isoc

◆ isoc [2/2]

template<typename device_t , typename interface_t >
struct dx::usb::platform::pipe::isoc dx::usb::platform::pipe< device_t, interface_t >::isoc
protected

◆ micro_frames

template<typename device_t , typename interface_t >
unsigned int dx::usb::platform::pipe< device_t, interface_t >::micro_frames = 0

◆ type

template<typename device_t , typename interface_t >
enum dx::usb::platform::pipe::type dx::usb::platform::pipe< device_t, interface_t >::type

◆ [struct]

struct { ... } dx::usb::platform::pipe< device_t, interface_t >::winusb

The documentation for this class was generated from the following files:

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Dec 20 2024

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.