pub trait QueueFactory:
Send
+ Sync
+ Debug {
type Queue: HardwareQueue;
type Signal: TimelineSignal;
// Required methods
fn create_compute_queue(&self) -> Result<Self::Queue>;
fn create_copy_queue(&self) -> Result<Option<Self::Queue>>;
fn create_signal(&self) -> Result<Arc<Self::Signal>>;
fn device(&self) -> &DeviceSpec;
}Expand description
Factory for creating hardware queues.
Each device implementation provides a factory that creates queues for that device type.
Required Associated Types§
Sourcetype Queue: HardwareQueue
type Queue: HardwareQueue
The queue type produced by this factory.
Sourcetype Signal: TimelineSignal
type Signal: TimelineSignal
The signal type used by queues from this factory.
Required Methods§
Sourcefn create_compute_queue(&self) -> Result<Self::Queue>
fn create_compute_queue(&self) -> Result<Self::Queue>
Create a new compute queue.
Sourcefn create_copy_queue(&self) -> Result<Option<Self::Queue>>
fn create_copy_queue(&self) -> Result<Option<Self::Queue>>
Create a new copy/DMA queue if supported.
Returns None if the device doesn’t support separate copy queues.
Sourcefn create_signal(&self) -> Result<Arc<Self::Signal>>
fn create_signal(&self) -> Result<Arc<Self::Signal>>
Create a new timeline signal.
Sourcefn device(&self) -> &DeviceSpec
fn device(&self) -> &DeviceSpec
Get the device specification.